{ "cells": [ { "cell_type": "markdown", "id": "b4689de9-c8ee-4003-a481-5309ce938802", "metadata": {}, "source": [ "# Credit Card Fraud Detection" ] }, { "cell_type": "markdown", "id": "0fc950a6-afa7-4ca2-b216-782aba55384d", "metadata": {}, "source": [ "In this projects I am using 2 datasets 1 is training dataset and the other is for testing dataset. It has 1296675 rows × 23 columns on trainig dataset and 555719 rows × 23 columns in the test dataset where 22 columns are independent variables and the last column i.e., is_fraud is the target variable having binary classification with values 0 and 1. 1 represents Fraudlent and 0 represents Genuine" ] }, { "cell_type": "markdown", "id": "297f1755-220f-4e5d-9949-f63978679215", "metadata": {}, "source": [ "#### Import all the necessary packages" ] }, { "cell_type": "code", "execution_count": 2, "id": "55f101ac-752c-4f14-8c1e-0948c08cb886", "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import pandas as pd\n", "import matplotlib.pyplot as plt\n", "import seaborn as sns\n", "%matplotlib inline\n", "\n", "from sklearn.model_selection import GridSearchCV\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.linear_model import LogisticRegression\n", "from sklearn.neighbors import KNeighborsClassifier\n", "from sklearn.ensemble import RandomForestClassifier\n", "from sklearn.svm import SVC\n", "\n", "import sklearn.metrics as metrics\n", "from sklearn.metrics import f1_score\n", "from sklearn.metrics import confusion_matrix, accuracy_score, classification_report" ] }, { "cell_type": "code", "execution_count": 3, "id": "b65f40a9-d5d0-4bbb-87c1-b4c2ee3a5739", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Unnamed: 0trans_date_trans_timecc_nummerchantcategoryamtfirstlastgenderstreet...latlongcity_popjobdobtrans_numunix_timemerch_latmerch_longis_fraud
002019-01-01 00:00:182703186189652095fraud_Rippin, Kub and Mannmisc_net4.97JenniferBanksF561 Perry Cove...36.0788-81.17813495Psychologist, counselling1988-03-090b242abb623afc578575680df30655b9132537601836.011293-82.0483150
112019-01-01 00:00:44630423337322fraud_Heller, Gutmann and Ziemegrocery_pos107.23StephanieGillF43039 Riley Greens Suite 393...48.8878-118.2105149Special educational needs teacher1978-06-211f76529f8574734946361c461b024d99132537604449.159047-118.1864620
222019-01-01 00:00:5138859492057661fraud_Lind-Buckridgeentertainment220.11EdwardSanchezM594 White Dale Suite 530...42.1808-112.26204154Nature conservation officer1962-01-19a1a22d70485983eac12b5b88dad1cf95132537605143.150704-112.1544810
332019-01-01 00:01:163534093764340240fraud_Kutch, Hermiston and Farrellgas_transport45.00JeremyWhiteM9443 Cynthia Court Apt. 038...46.2306-112.11381939Patent attorney1967-01-126b849c168bdad6f867558c3793159a81132537607647.034331-112.5610710
442019-01-01 00:03:06375534208663984fraud_Keeling-Cristmisc_pos41.96TylerGarciaM408 Bradley Rest...38.4207-79.462999Dance movement psychotherapist1986-03-28a41d7549acf90789359a9aa5346dcb46132537618638.674999-78.6324590
\n", "

5 rows × 23 columns

\n", "
" ], "text/plain": [ " Unnamed: 0 trans_date_trans_time cc_num \\\n", "0 0 2019-01-01 00:00:18 2703186189652095 \n", "1 1 2019-01-01 00:00:44 630423337322 \n", "2 2 2019-01-01 00:00:51 38859492057661 \n", "3 3 2019-01-01 00:01:16 3534093764340240 \n", "4 4 2019-01-01 00:03:06 375534208663984 \n", "\n", " merchant category amt first \\\n", "0 fraud_Rippin, Kub and Mann misc_net 4.97 Jennifer \n", "1 fraud_Heller, Gutmann and Zieme grocery_pos 107.23 Stephanie \n", "2 fraud_Lind-Buckridge entertainment 220.11 Edward \n", "3 fraud_Kutch, Hermiston and Farrell gas_transport 45.00 Jeremy \n", "4 fraud_Keeling-Crist misc_pos 41.96 Tyler \n", "\n", " last gender street ... lat long \\\n", "0 Banks F 561 Perry Cove ... 36.0788 -81.1781 \n", "1 Gill F 43039 Riley Greens Suite 393 ... 48.8878 -118.2105 \n", "2 Sanchez M 594 White Dale Suite 530 ... 42.1808 -112.2620 \n", "3 White M 9443 Cynthia Court Apt. 038 ... 46.2306 -112.1138 \n", "4 Garcia M 408 Bradley Rest ... 38.4207 -79.4629 \n", "\n", " city_pop job dob \\\n", "0 3495 Psychologist, counselling 1988-03-09 \n", "1 149 Special educational needs teacher 1978-06-21 \n", "2 4154 Nature conservation officer 1962-01-19 \n", "3 1939 Patent attorney 1967-01-12 \n", "4 99 Dance movement psychotherapist 1986-03-28 \n", "\n", " trans_num unix_time merch_lat merch_long \\\n", "0 0b242abb623afc578575680df30655b9 1325376018 36.011293 -82.048315 \n", "1 1f76529f8574734946361c461b024d99 1325376044 49.159047 -118.186462 \n", "2 a1a22d70485983eac12b5b88dad1cf95 1325376051 43.150704 -112.154481 \n", "3 6b849c168bdad6f867558c3793159a81 1325376076 47.034331 -112.561071 \n", "4 a41d7549acf90789359a9aa5346dcb46 1325376186 38.674999 -78.632459 \n", "\n", " is_fraud \n", "0 0 \n", "1 0 \n", "2 0 \n", "3 0 \n", "4 0 \n", "\n", "[5 rows x 23 columns]" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Train dataset\n", "df_train = pd.read_csv('Downloads/credit_card_fraud_codsoft/fraudTrain.csv')\n", "df_train.head()" ] }, { "cell_type": "code", "execution_count": 4, "id": "c6046116-8e7d-4cc9-b104-8d05f06951c2", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Unnamed: 0cc_numamtziplatlongcity_popunix_timemerch_latmerch_longis_fraud
count1.296675e+061.296675e+061.296675e+061.296675e+061.296675e+061.296675e+061.296675e+061.296675e+061.296675e+061.296675e+061.296675e+06
mean6.483370e+054.171920e+177.035104e+014.880067e+043.853762e+01-9.022634e+018.882444e+041.349244e+093.853734e+01-9.022646e+015.788652e-03
std3.743180e+051.308806e+181.603160e+022.689322e+045.075808e+001.375908e+013.019564e+051.284128e+075.109788e+001.377109e+017.586269e-02
min0.000000e+006.041621e+101.000000e+001.257000e+032.002710e+01-1.656723e+022.300000e+011.325376e+091.902779e+01-1.666712e+020.000000e+00
25%3.241685e+051.800429e+149.650000e+002.623700e+043.462050e+01-9.679800e+017.430000e+021.338751e+093.473357e+01-9.689728e+010.000000e+00
50%6.483370e+053.521417e+154.752000e+014.817400e+043.935430e+01-8.747690e+012.456000e+031.349250e+093.936568e+01-8.743839e+010.000000e+00
75%9.725055e+054.642255e+158.314000e+017.204200e+044.194040e+01-8.015800e+012.032800e+041.359385e+094.195716e+01-8.023680e+010.000000e+00
max1.296674e+064.992346e+182.894890e+049.978300e+046.669330e+01-6.795030e+012.906700e+061.371817e+096.751027e+01-6.695090e+011.000000e+00
\n", "
" ], "text/plain": [ " Unnamed: 0 cc_num amt zip lat \\\n", "count 1.296675e+06 1.296675e+06 1.296675e+06 1.296675e+06 1.296675e+06 \n", "mean 6.483370e+05 4.171920e+17 7.035104e+01 4.880067e+04 3.853762e+01 \n", "std 3.743180e+05 1.308806e+18 1.603160e+02 2.689322e+04 5.075808e+00 \n", "min 0.000000e+00 6.041621e+10 1.000000e+00 1.257000e+03 2.002710e+01 \n", "25% 3.241685e+05 1.800429e+14 9.650000e+00 2.623700e+04 3.462050e+01 \n", "50% 6.483370e+05 3.521417e+15 4.752000e+01 4.817400e+04 3.935430e+01 \n", "75% 9.725055e+05 4.642255e+15 8.314000e+01 7.204200e+04 4.194040e+01 \n", "max 1.296674e+06 4.992346e+18 2.894890e+04 9.978300e+04 6.669330e+01 \n", "\n", " long city_pop unix_time merch_lat merch_long \\\n", "count 1.296675e+06 1.296675e+06 1.296675e+06 1.296675e+06 1.296675e+06 \n", "mean -9.022634e+01 8.882444e+04 1.349244e+09 3.853734e+01 -9.022646e+01 \n", "std 1.375908e+01 3.019564e+05 1.284128e+07 5.109788e+00 1.377109e+01 \n", "min -1.656723e+02 2.300000e+01 1.325376e+09 1.902779e+01 -1.666712e+02 \n", "25% -9.679800e+01 7.430000e+02 1.338751e+09 3.473357e+01 -9.689728e+01 \n", "50% -8.747690e+01 2.456000e+03 1.349250e+09 3.936568e+01 -8.743839e+01 \n", "75% -8.015800e+01 2.032800e+04 1.359385e+09 4.195716e+01 -8.023680e+01 \n", "max -6.795030e+01 2.906700e+06 1.371817e+09 6.751027e+01 -6.695090e+01 \n", "\n", " is_fraud \n", "count 1.296675e+06 \n", "mean 5.788652e-03 \n", "std 7.586269e-02 \n", "min 0.000000e+00 \n", "25% 0.000000e+00 \n", "50% 0.000000e+00 \n", "75% 0.000000e+00 \n", "max 1.000000e+00 " ] }, "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_train.describe()" ] }, { "cell_type": "code", "execution_count": 5, "id": "732e8e7f-cc5b-4e0f-8e81-b5ac9e85b086", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 1296675 entries, 0 to 1296674\n", "Data columns (total 23 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 Unnamed: 0 1296675 non-null int64 \n", " 1 trans_date_trans_time 1296675 non-null object \n", " 2 cc_num 1296675 non-null int64 \n", " 3 merchant 1296675 non-null object \n", " 4 category 1296675 non-null object \n", " 5 amt 1296675 non-null float64\n", " 6 first 1296675 non-null object \n", " 7 last 1296675 non-null object \n", " 8 gender 1296675 non-null object \n", " 9 street 1296675 non-null object \n", " 10 city 1296675 non-null object \n", " 11 state 1296675 non-null object \n", " 12 zip 1296675 non-null int64 \n", " 13 lat 1296675 non-null float64\n", " 14 long 1296675 non-null float64\n", " 15 city_pop 1296675 non-null int64 \n", " 16 job 1296675 non-null object \n", " 17 dob 1296675 non-null object \n", " 18 trans_num 1296675 non-null object \n", " 19 unix_time 1296675 non-null int64 \n", " 20 merch_lat 1296675 non-null float64\n", " 21 merch_long 1296675 non-null float64\n", " 22 is_fraud 1296675 non-null int64 \n", "dtypes: float64(5), int64(6), object(12)\n", "memory usage: 227.5+ MB\n" ] } ], "source": [ "df_train.info()" ] }, { "cell_type": "code", "execution_count": 6, "id": "91349402-fb47-4fb4-8a24-4d69b9e1cf34", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Unnamed: 0trans_date_trans_timecc_nummerchantcategoryamtfirstlastgenderstreet...latlongcity_popjobdobtrans_numunix_timemerch_latmerch_longis_fraud
002020-06-21 12:14:252291163933867244fraud_Kirlin and Sonspersonal_care2.86JeffElliottM351 Darlene Green...33.9659-80.9355333497Mechanical engineer1968-03-192da90c7d74bd46a0caf3777415b3ebd3137181686533.986391-81.2007140
112020-06-21 12:14:333573030041201292fraud_Sporer-Keeblerpersonal_care29.84JoanneWilliamsF3638 Marsh Union...40.3207-110.4360302Sales professional, IT1990-01-17324cc204407e99f51b0d6ca0055005e7137181687339.450498-109.9604310
222020-06-21 12:14:533598215285024754fraud_Swaniawski, Nitzsche and Welchhealth_fitness41.28AshleyLopezF9333 Valentine Point...40.6729-73.536534496Librarian, public1970-10-21c81755dbbbea9d5c77f094348a7579be137181689340.495810-74.1961110
332020-06-21 12:15:153591919803438423fraud_Haley Groupmisc_pos60.05BrianWilliamsM32941 Krystal Mill Apt. 552...28.5697-80.819154767Set designer1987-07-252159175b9efe66dc301f149d3d5abf8c137181691528.812398-80.8830610
442020-06-21 12:15:173526826139003047fraud_Johnston-Caspertravel3.19NathanMasseyM5783 Evan Roads Apt. 465...44.2529-85.01701126Furniture designer1955-07-0657ff021bd3f328f8738bb535c302a31b137181691744.959148-85.8847340
\n", "

5 rows × 23 columns

\n", "
" ], "text/plain": [ " Unnamed: 0 trans_date_trans_time cc_num \\\n", "0 0 2020-06-21 12:14:25 2291163933867244 \n", "1 1 2020-06-21 12:14:33 3573030041201292 \n", "2 2 2020-06-21 12:14:53 3598215285024754 \n", "3 3 2020-06-21 12:15:15 3591919803438423 \n", "4 4 2020-06-21 12:15:17 3526826139003047 \n", "\n", " merchant category amt first \\\n", "0 fraud_Kirlin and Sons personal_care 2.86 Jeff \n", "1 fraud_Sporer-Keebler personal_care 29.84 Joanne \n", "2 fraud_Swaniawski, Nitzsche and Welch health_fitness 41.28 Ashley \n", "3 fraud_Haley Group misc_pos 60.05 Brian \n", "4 fraud_Johnston-Casper travel 3.19 Nathan \n", "\n", " last gender street ... lat long \\\n", "0 Elliott M 351 Darlene Green ... 33.9659 -80.9355 \n", "1 Williams F 3638 Marsh Union ... 40.3207 -110.4360 \n", "2 Lopez F 9333 Valentine Point ... 40.6729 -73.5365 \n", "3 Williams M 32941 Krystal Mill Apt. 552 ... 28.5697 -80.8191 \n", "4 Massey M 5783 Evan Roads Apt. 465 ... 44.2529 -85.0170 \n", "\n", " city_pop job dob \\\n", "0 333497 Mechanical engineer 1968-03-19 \n", "1 302 Sales professional, IT 1990-01-17 \n", "2 34496 Librarian, public 1970-10-21 \n", "3 54767 Set designer 1987-07-25 \n", "4 1126 Furniture designer 1955-07-06 \n", "\n", " trans_num unix_time merch_lat merch_long \\\n", "0 2da90c7d74bd46a0caf3777415b3ebd3 1371816865 33.986391 -81.200714 \n", "1 324cc204407e99f51b0d6ca0055005e7 1371816873 39.450498 -109.960431 \n", "2 c81755dbbbea9d5c77f094348a7579be 1371816893 40.495810 -74.196111 \n", "3 2159175b9efe66dc301f149d3d5abf8c 1371816915 28.812398 -80.883061 \n", "4 57ff021bd3f328f8738bb535c302a31b 1371816917 44.959148 -85.884734 \n", "\n", " is_fraud \n", "0 0 \n", "1 0 \n", "2 0 \n", "3 0 \n", "4 0 \n", "\n", "[5 rows x 23 columns]" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Test Dataset\n", "df_test = pd.read_csv('Downloads/credit_card_fraud_codsoft/fraudTest.csv')\n", "df_test.head()" ] }, { "cell_type": "code", "execution_count": 7, "id": "94775dc8-6feb-4237-9e36-361c7951ab7d", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Unnamed: 0cc_numamtziplatlongcity_popunix_timemerch_latmerch_longis_fraud
count555719.0000005.557190e+05555719.000000555719.000000555719.000000555719.0000005.557190e+055.557190e+05555719.000000555719.000000555719.000000
mean277859.0000004.178387e+1769.39281048842.62801538.543253-90.2313258.822189e+041.380679e+0938.542798-90.2313800.003860
std160422.4014591.309837e+18156.74594126855.2833285.06133613.7217803.003909e+055.201104e+065.09582913.7330710.062008
min0.0000006.041621e+101.0000001257.00000020.027100-165.6723002.300000e+011.371817e+0919.027422-166.6715750.000000
25%138929.5000001.800429e+149.63000026292.00000034.668900-96.7980007.410000e+021.376029e+0934.755302-96.9051290.000000
50%277859.0000003.521417e+1547.29000048174.00000039.371600-87.4769002.408000e+031.380762e+0939.376593-87.4452040.000000
75%416788.5000004.635331e+1583.01000072011.00000041.894800-80.1752001.968500e+041.385867e+0941.954163-80.2646370.000000
max555718.0000004.992346e+1822768.11000099921.00000065.689900-67.9503002.906700e+061.388534e+0966.679297-66.9520261.000000
\n", "
" ], "text/plain": [ " Unnamed: 0 cc_num amt zip \\\n", "count 555719.000000 5.557190e+05 555719.000000 555719.000000 \n", "mean 277859.000000 4.178387e+17 69.392810 48842.628015 \n", "std 160422.401459 1.309837e+18 156.745941 26855.283328 \n", "min 0.000000 6.041621e+10 1.000000 1257.000000 \n", "25% 138929.500000 1.800429e+14 9.630000 26292.000000 \n", "50% 277859.000000 3.521417e+15 47.290000 48174.000000 \n", "75% 416788.500000 4.635331e+15 83.010000 72011.000000 \n", "max 555718.000000 4.992346e+18 22768.110000 99921.000000 \n", "\n", " lat long city_pop unix_time \\\n", "count 555719.000000 555719.000000 5.557190e+05 5.557190e+05 \n", "mean 38.543253 -90.231325 8.822189e+04 1.380679e+09 \n", "std 5.061336 13.721780 3.003909e+05 5.201104e+06 \n", "min 20.027100 -165.672300 2.300000e+01 1.371817e+09 \n", "25% 34.668900 -96.798000 7.410000e+02 1.376029e+09 \n", "50% 39.371600 -87.476900 2.408000e+03 1.380762e+09 \n", "75% 41.894800 -80.175200 1.968500e+04 1.385867e+09 \n", "max 65.689900 -67.950300 2.906700e+06 1.388534e+09 \n", "\n", " merch_lat merch_long is_fraud \n", "count 555719.000000 555719.000000 555719.000000 \n", "mean 38.542798 -90.231380 0.003860 \n", "std 5.095829 13.733071 0.062008 \n", "min 19.027422 -166.671575 0.000000 \n", "25% 34.755302 -96.905129 0.000000 \n", "50% 39.376593 -87.445204 0.000000 \n", "75% 41.954163 -80.264637 0.000000 \n", "max 66.679297 -66.952026 1.000000 " ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df_test.describe()" ] }, { "cell_type": "code", "execution_count": 8, "id": "e525ad1a-7282-4d89-9f17-5703a8225db9", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 555719 entries, 0 to 555718\n", "Data columns (total 23 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 Unnamed: 0 555719 non-null int64 \n", " 1 trans_date_trans_time 555719 non-null object \n", " 2 cc_num 555719 non-null int64 \n", " 3 merchant 555719 non-null object \n", " 4 category 555719 non-null object \n", " 5 amt 555719 non-null float64\n", " 6 first 555719 non-null object \n", " 7 last 555719 non-null object \n", " 8 gender 555719 non-null object \n", " 9 street 555719 non-null object \n", " 10 city 555719 non-null object \n", " 11 state 555719 non-null object \n", " 12 zip 555719 non-null int64 \n", " 13 lat 555719 non-null float64\n", " 14 long 555719 non-null float64\n", " 15 city_pop 555719 non-null int64 \n", " 16 job 555719 non-null object \n", " 17 dob 555719 non-null object \n", " 18 trans_num 555719 non-null object \n", " 19 unix_time 555719 non-null int64 \n", " 20 merch_lat 555719 non-null float64\n", " 21 merch_long 555719 non-null float64\n", " 22 is_fraud 555719 non-null int64 \n", "dtypes: float64(5), int64(6), object(12)\n", "memory usage: 97.5+ MB\n" ] } ], "source": [ "df_test.info()" ] }, { "cell_type": "code", "execution_count": 9, "id": "9eb3d06c-1d63-4764-a55d-31ba12da5f9f", "metadata": {}, "outputs": [], "source": [ "# Dropping the unneccessary columns\n", "df_train = df_train.drop(columns = ['Unnamed: 0', 'cc_num', 'merchant', 'first', 'last', 'lat', 'long', 'job', 'unix_time', 'merch_lat', 'merch_long','trans_num', 'street', 'city', 'state', 'zip' ])" ] }, { "cell_type": "code", "execution_count": 10, "id": "379e9d42-fdbb-4bdf-9521-3746e6237c8e", "metadata": {}, "outputs": [], "source": [ "# Dropping the unneccessary columns\n", "df_test = df_test.drop(columns = ['Unnamed: 0', 'cc_num', 'merchant', 'first', 'last', 'lat', 'long', 'job', 'unix_time', 'merch_lat', 'merch_long','trans_num', 'street', 'city', 'state', 'zip'])" ] }, { "cell_type": "code", "execution_count": 11, "id": "ab17c936-15f7-4aff-9373-7368dd312a0c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Train data : is_fraud\n", "0 1289169\n", "1 7506\n", "Name: count, dtype: int64\n", "\n", "Test data : is_fraud\n", "0 553574\n", "1 2145\n", "Name: count, dtype: int64\n" ] } ], "source": [ "print(\"Train data :\",df_train.is_fraud.value_counts())\n", "print(\"\\nTest data :\",df_test.is_fraud.value_counts())" ] }, { "cell_type": "markdown", "id": "8b8a2019-6498-47a5-bee7-f96f235f3a79", "metadata": {}, "source": [ "#### Now we need to convert the data type of trans_date_trans_time and dob from object to date type" ] }, { "cell_type": "code", "execution_count": 12, "id": "6ce68107-bbc9-490c-b28e-667d9dca77af", "metadata": {}, "outputs": [], "source": [ "# for train data\n", "df_train['trans_date_trans_time'] = pd.to_datetime(df_train['trans_date_trans_time'])\n", "df_train['dob'] = pd.to_datetime(df_train['dob'])\n", "\n", "# for test data\n", "df_test['trans_date_trans_time'] = pd.to_datetime(df_test['trans_date_trans_time'])\n", "df_test['dob'] = pd.to_datetime(df_test['dob'])" ] }, { "cell_type": "code", "execution_count": 13, "id": "55521190-1391-436e-9cf2-117d2a39e975", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 1296675 entries, 0 to 1296674\n", "Data columns (total 7 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 trans_date_trans_time 1296675 non-null datetime64[ns]\n", " 1 category 1296675 non-null object \n", " 2 amt 1296675 non-null float64 \n", " 3 gender 1296675 non-null object \n", " 4 city_pop 1296675 non-null int64 \n", " 5 dob 1296675 non-null datetime64[ns]\n", " 6 is_fraud 1296675 non-null int64 \n", "dtypes: datetime64[ns](2), float64(1), int64(2), object(2)\n", "memory usage: 69.3+ MB\n" ] } ], "source": [ "df_train.info()" ] }, { "cell_type": "code", "execution_count": 14, "id": "b10cce40-9b18-4dbd-9a55-23bf805dfbb4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "RangeIndex: 555719 entries, 0 to 555718\n", "Data columns (total 7 columns):\n", " # Column Non-Null Count Dtype \n", "--- ------ -------------- ----- \n", " 0 trans_date_trans_time 555719 non-null datetime64[ns]\n", " 1 category 555719 non-null object \n", " 2 amt 555719 non-null float64 \n", " 3 gender 555719 non-null object \n", " 4 city_pop 555719 non-null int64 \n", " 5 dob 555719 non-null datetime64[ns]\n", " 6 is_fraud 555719 non-null int64 \n", "dtypes: datetime64[ns](2), float64(1), int64(2), object(2)\n", "memory usage: 29.7+ MB\n" ] } ], "source": [ "df_test.info()" ] }, { "cell_type": "code", "execution_count": 15, "id": "f0a460d8-6d63-4f83-b7b1-20bf49b6c7e8", "metadata": {}, "outputs": [], "source": [ "df = pd.concat([df_train, df_test], ignore_index=True)" ] }, { "cell_type": "code", "execution_count": 16, "id": "618b2ced-5acd-4892-bc3c-3d5517eb16c6", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
trans_date_trans_timecategoryamtgendercity_popdobis_fraud
02019-01-01 00:00:18misc_net4.97F34951988-03-090
12019-01-01 00:00:44grocery_pos107.23F1491978-06-210
22019-01-01 00:00:51entertainment220.11M41541962-01-190
32019-01-01 00:01:16gas_transport45.00M19391967-01-120
42019-01-01 00:03:06misc_pos41.96M991986-03-280
\n", "
" ], "text/plain": [ " trans_date_trans_time category amt gender city_pop dob \\\n", "0 2019-01-01 00:00:18 misc_net 4.97 F 3495 1988-03-09 \n", "1 2019-01-01 00:00:44 grocery_pos 107.23 F 149 1978-06-21 \n", "2 2019-01-01 00:00:51 entertainment 220.11 M 4154 1962-01-19 \n", "3 2019-01-01 00:01:16 gas_transport 45.00 M 1939 1967-01-12 \n", "4 2019-01-01 00:03:06 misc_pos 41.96 M 99 1986-03-28 \n", "\n", " is_fraud \n", "0 0 \n", "1 0 \n", "2 0 \n", "3 0 \n", "4 0 " ] }, "execution_count": 16, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "markdown", "id": "921694c3-f56c-4fe3-b592-59b8a4f698ad", "metadata": {}, "source": [ "#### Now as the time is in minutes and seconds we need to find out that on which half of the day the transactions have been occured. \n", "#### So for that we need to convert the time to hours and put some conditions and add a new column for it" ] }, { "cell_type": "code", "execution_count": 17, "id": "140c1ee5-0a78-4389-bdef-c3b89c20581d", "metadata": {}, "outputs": [], "source": [ "df['hrs'] = df['trans_date_trans_time'].dt.hour" ] }, { "cell_type": "code", "execution_count": 18, "id": "da3abbef-a1b7-4216-9517-2abdc3362df7", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,\n", " 17, 18, 19, 20, 21, 22, 23])" ] }, "execution_count": 18, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['hrs'].unique()" ] }, { "cell_type": "markdown", "id": "c47c0cdf-6b5b-4d48-8433-c70a83d2ea8a", "metadata": {}, "source": [ "#### Now lets create a new categorical column based on the time of the day" ] }, { "cell_type": "code", "execution_count": 19, "id": "1e1a7c02-a5f0-4cdf-8be2-205d28216eaf", "metadata": {}, "outputs": [], "source": [ "def time_of_day(hour):\n", " if hour['hrs'] >= 4 and hour['hrs'] <= 7:\n", " val = 'morning'\n", " elif hour['hrs'] >= 8 and hour['hrs'] <= 15:\n", " val = 'afternoon'\n", " elif hour['hrs'] >= 16 and hour['hrs'] <= 19:\n", " val = 'evening'\n", " else:\n", " val = 'night'\n", " return val" ] }, { "cell_type": "code", "execution_count": 20, "id": "3894aa38-3546-4426-a5f9-cec98b552e3b", "metadata": {}, "outputs": [], "source": [ "df['time_of_day'] = df.apply(time_of_day, axis = 1)" ] }, { "cell_type": "code", "execution_count": 21, "id": "b9aa8440-b35f-4ac4-b172-790ba44df835", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
trans_date_trans_timecategoryamtgendercity_popdobis_fraudhrstime_of_day
02019-01-01 00:00:18misc_net4.97F34951988-03-0900night
12019-01-01 00:00:44grocery_pos107.23F1491978-06-2100night
22019-01-01 00:00:51entertainment220.11M41541962-01-1900night
32019-01-01 00:01:16gas_transport45.00M19391967-01-1200night
42019-01-01 00:03:06misc_pos41.96M991986-03-2800night
\n", "
" ], "text/plain": [ " trans_date_trans_time category amt gender city_pop dob \\\n", "0 2019-01-01 00:00:18 misc_net 4.97 F 3495 1988-03-09 \n", "1 2019-01-01 00:00:44 grocery_pos 107.23 F 149 1978-06-21 \n", "2 2019-01-01 00:00:51 entertainment 220.11 M 4154 1962-01-19 \n", "3 2019-01-01 00:01:16 gas_transport 45.00 M 1939 1967-01-12 \n", "4 2019-01-01 00:03:06 misc_pos 41.96 M 99 1986-03-28 \n", "\n", " is_fraud hrs time_of_day \n", "0 0 0 night \n", "1 0 0 night \n", "2 0 0 night \n", "3 0 0 night \n", "4 0 0 night " ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "markdown", "id": "5f2e7049-e0ce-4720-81bd-bc5cb1e0fc06", "metadata": {}, "source": [ "#### Now lets do the same thing for the age column by taking the dob column into consideration" ] }, { "cell_type": "code", "execution_count": 22, "id": "5ba5063e-f137-4944-81f8-750d28785db2", "metadata": {}, "outputs": [], "source": [ "# Extracting the year form the dob\n", "df['year_of_birth'] = df['dob'].dt.year" ] }, { "cell_type": "code", "execution_count": 23, "id": "634e7fa1-d83c-43e0-8893-38753a7eb22d", "metadata": {}, "outputs": [], "source": [ "def age(age):\n", " if 2024 - age['year_of_birth'] <= 29:\n", " val = 'Young'\n", " elif 2024 - age['year_of_birth'] >= 30 and 2024 - age['year_of_birth'] <= 59:\n", " val = 'Middle_age'\n", " else:\n", " val = 'Old'\n", " return val" ] }, { "cell_type": "code", "execution_count": 24, "id": "0e9fa5ce-4ac2-451e-bf76-c98dee79e49e", "metadata": {}, "outputs": [], "source": [ "df['age'] = df.apply(age, axis = 1)" ] }, { "cell_type": "code", "execution_count": 25, "id": "3a300f38-ddfd-4869-93a6-4a04eb16bead", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
trans_date_trans_timecategoryamtgendercity_popdobis_fraudhrstime_of_dayyear_of_birthage
02019-01-01 00:00:18misc_net4.97F34951988-03-0900night1988Middle_age
12019-01-01 00:00:44grocery_pos107.23F1491978-06-2100night1978Middle_age
22019-01-01 00:00:51entertainment220.11M41541962-01-1900night1962Old
32019-01-01 00:01:16gas_transport45.00M19391967-01-1200night1967Middle_age
42019-01-01 00:03:06misc_pos41.96M991986-03-2800night1986Middle_age
\n", "
" ], "text/plain": [ " trans_date_trans_time category amt gender city_pop dob \\\n", "0 2019-01-01 00:00:18 misc_net 4.97 F 3495 1988-03-09 \n", "1 2019-01-01 00:00:44 grocery_pos 107.23 F 149 1978-06-21 \n", "2 2019-01-01 00:00:51 entertainment 220.11 M 4154 1962-01-19 \n", "3 2019-01-01 00:01:16 gas_transport 45.00 M 1939 1967-01-12 \n", "4 2019-01-01 00:03:06 misc_pos 41.96 M 99 1986-03-28 \n", "\n", " is_fraud hrs time_of_day year_of_birth age \n", "0 0 0 night 1988 Middle_age \n", "1 0 0 night 1978 Middle_age \n", "2 0 0 night 1962 Old \n", "3 0 0 night 1967 Middle_age \n", "4 0 0 night 1986 Middle_age " ] }, "execution_count": 25, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "markdown", "id": "0cda18ee-c479-4e69-9e56-3275c157a2be", "metadata": {}, "source": [ "#### Now lets drop some unwanted columns which we have already processed" ] }, { "cell_type": "code", "execution_count": 26, "id": "67a7f28e-6a29-4801-8db8-ca5fbcedc5cd", "metadata": {}, "outputs": [], "source": [ "df = df.drop(['trans_date_trans_time', 'dob', 'hrs', 'year_of_birth'], axis = 1)" ] }, { "cell_type": "code", "execution_count": 27, "id": "05308a93-b75b-4917-a7d1-e50c4888397f", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
categoryamtgendercity_popis_fraudtime_of_dayage
0misc_net4.97F34950nightMiddle_age
1grocery_pos107.23F1490nightMiddle_age
2entertainment220.11M41540nightOld
3gas_transport45.00M19390nightMiddle_age
4misc_pos41.96M990nightMiddle_age
\n", "
" ], "text/plain": [ " category amt gender city_pop is_fraud time_of_day age\n", "0 misc_net 4.97 F 3495 0 night Middle_age\n", "1 grocery_pos 107.23 F 149 0 night Middle_age\n", "2 entertainment 220.11 M 4154 0 night Old\n", "3 gas_transport 45.00 M 1939 0 night Middle_age\n", "4 misc_pos 41.96 M 99 0 night Middle_age" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "code", "execution_count": 28, "id": "84bcb9de-254b-489d-abe7-939360442f1c", "metadata": {}, "outputs": [], "source": [ "df['is_fraud'] = df['is_fraud'].astype(str)" ] }, { "cell_type": "code", "execution_count": 29, "id": "86899c87-6228-44ab-b27a-5abccb649e8f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Gender Vs Is_Fraud')" ] }, "execution_count": 29, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAHFCAYAAAAOmtghAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA0i0lEQVR4nO3de1xVdb7/8ffmjhcwQREUDQ2N1EyhGmwsdUYStZmaMjtdFMUmojIls2FqKsmkvBA1idpJJWccs4t2ssjklJphnRJxrKTSvGC6idAEtQSB9fujH3vagRdgw9osX8/HYz0eru/+ru/6rI1b3n7XZdsMwzAEAABgER5mFwAAAOBKhBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBsAAGAphBvAje3YsUOJiYnq1auX/P395e/vr8jISN11113aunWraXVdeOGFSkhIaNZ9/Pvf/5bNZtNf/vKX0/bZtWuXbDabpkyZ0qR9Pf7447LZbCotLW3SOKcbt77l+eefd+m+mmLo0KEaOnSo2WUALuNldgEA6rd48WLde++96tOnj+6//3717dtXNptNhYWFWrlypS6//HLt3r1bvXr1MrvUZjFgwABFR0dr+fLlevLJJ+Xp6Vmnz7JlyyRJiYmJLV1eg6xbt06BgYFObRERESZVA1gf4QZwQ3l5eUpOTtbo0aP12muvycfHx/Ha8OHDdc899+jVV1+Vv7+/iVW6RnV1taqqquTr61vntcTERCUnJ+udd97RmDFj6my3fPlyRUdHa8CAAS1VbqNER0crODj4nPr+9NNP8vPzk81ma+aqAOvitBTghmbPni1PT08tXrzYKdj80tixYxUWFubUtnXrVv3hD39Qx44d5efnp4EDB+qVV15x6pOdnS2bzaYNGzbo7rvvVnBwsIKCgvSnP/1Jhw4dcup76tQpzZgxQ126dFGbNm3029/+Vp988km99RQXF+uuu+5St27d5OPjo4iICM2cOVNVVVWOPvv27ZPNZtOcOXM0a9YsRUREyNfXVxs2bKh3zFtvvVX+/v6OGZpfWr9+vQ4ePKhJkyY52vbs2aNbbrlFYWFh8vX1VUhIiH73u99p+/bt9Y5/JgUFBRozZow6d+4sX19fhYWFafTo0fr2228bPNbp1P4s1q9fr0mTJqlTp05q06aNKioqtHv3bk2cOFGRkZFq06aNunbtquuuu06fffZZvWPs27fPqX3jxo2y2WzauHGjo80wDM2ZM0c9evSQn5+fBg0apHfeecdlxwO4C2ZuADdTXV2tDRs2KCYmRqGhoee83YYNGzRy5EhdeeWVWrRokQIDA/Xyyy9r3Lhx+vHHH+tcIzN58mSNHj1a//rXv3TgwAE9+OCDuv322/X+++87+tx5551avny5pk+frhEjRujzzz/Xn/70Jx07dsxprOLiYl1xxRXy8PDQo48+ql69eumjjz7SrFmztG/fvjrh5LnnnlPv3r01b948BQQEKDIyst5jCgwM1I033qhVq1bp+++/V6dOnRyvLVu2TH5+frr11lsdbaNGjVJ1dbXmzJmj7t27q7S0VFu2bNHRo0fP+X2UpBMnTmjEiBGKiIjQggULFBISouLiYm3YsKHOsZ+L2tmpWjabzek026RJkzR69Gj94x//0IkTJ+Tt7a1Dhw4pKChITz31lDp16qQjR47opZde0pVXXqmCggL16dOnwXXMnDlTM2fOVGJiom666SYdOHBAd955p6qrqxs1HuC2DABupbi42JBk3HLLLXVeq6qqMk6dOuVYampqHK9dfPHFxsCBA41Tp045bTNmzBgjNDTUqK6uNgzDMJYtW2ZIMpKTk536zZkzx5Bk2O12wzAMo7Cw0JBkTJs2zanfihUrDEnGhAkTHG133XWX0a5dO2P//v1OfefNm2dIMr744gvDMAxj7969hiSjV69eRmVl5Tm9Hxs2bDAkGRkZGY62w4cPG76+vsZtt93maCstLTUkGZmZmec07i899thjhiTj+++/NwzDMLZu3WpIMt54440Gj1XfuL9eunbtahjGf34W48ePP+tYVVVVRmVlpREZGen0M6kdY+/evU79a9+3DRs2GIZhGD/88IPh5+dn3HDDDU798vLyDEnGNddc06RjBdzJeX1a6oMPPtB1112nsLAw2Ww2vfHGGw0ewzAMzZs3T71795avr6/Cw8M1e/Zs1xcL6OdrN7y9vR3L/PnzJUm7d+/Wl19+qdtuu02SVFVV5VhGjRolu92ur776ymmsP/zhD07rl156qSRp//79kuQ4VVQ7Zq2bb75ZXl7Ok75vvfWWhg0bprCwMKd9x8fHS5I2bdpUZ9/e3t7ndMzXXHONevXq5TT7s2LFClVUVDidkurYsaN69eqluXPnKiMjQwUFBaqpqTmnffzaRRddpAsuuEAPPfSQFi1apJ07dzZqnFr/+7//q08//dSx5OTkOL1+44031tmmqqpKs2fP1iWXXCIfHx95eXnJx8dHu3btUmFhYYNr+Oijj3Ty5Mk6P8/BgwerR48eDR4PcGfndbg5ceKEBgwY0KRbMu+//369+OKLmjdvnr788kutXbtWV1xxhQurxPkmODhY/v7+jpDxS//617/06aef6s0333Rq/+677yRJ06dPdwo/3t7eSk5OlqQ6tzkHBQU5rdde0PvTTz9Jkg4fPixJ6tKli1M/Ly+vOtt+9913Wrt2bZ199+3bt959N+R0m81m06RJk/TZZ585bn9ftmyZIiIiNGzYMKd+7733nq699lrNmTNHgwYNUqdOnTRlypQGn0oKDAzUpk2bdNlll+mvf/2r+vbtq7CwMD322GM6depUg8aSfr7zKyYmxrHUBsla9b0fKSkp+tvf/qbrr79ea9eu1f/93//p008/1YABAxw/o4Y43c/zdG1Aa3ZeX3MTHx/v+J9lfSorK/XII49oxYoVOnr0qPr166enn37a8TyIwsJCLVy4UJ9//jnnq+Eynp6eGj58uNavXy+73e70i++SSy6RpDoXj9beiZOamqo//elP9Y7b0L+jtQGmuLhYXbt2dbRXVVU5flH+cv+XXnqpnnzyyXrH+vWFzw29EyghIUGPPvqoli5dKm9vbxUUFOiJJ56oM06PHj20ZMkSSdLXX3+tV155RY8//rgqKyu1aNGiBu2zf//+evnll2UYhnbs2KHs7GylpaXJ39//jM/eaYz63o9//vOfGj9+fJ2Z4NLSUnXo0MGx7ufnJ0mqqKio0++Xfvnz/LXi4mJdeOGFjSkdcEvn9czN2UycOFF5eXl6+eWXtWPHDo0dO1YjR47Url27JElr165Vz5499dZbbykiIkIXXnihJk+erCNHjphcOVq71NRUVVdXKykp6ZxmCvr06aPIyEj9+9//dpoh+OXSvn37BtVQG+JXrFjh1P7KK684XRwrSWPGjNHnn3+uXr161bvvX4ebhgoLC9PIkSO1cuVKLViwQB4eHpowYcIZt+ndu7ceeeQR9e/fX9u2bWv0vm02mwYMGKBnnnlGHTp0aNJYDd3vr2+Pf/vtt3Xw4EGnttpQsmPHDqf2X8/u/eY3v5Gfn1+dn+eWLVvqnSUEWrPzeubmTL755hutXLlS3377reMf5unTp2vdunVatmyZZs+erT179mj//v169dVXtXz5clVXV2vatGm66aabnO44ARrqqquu0oIFC3Tfffdp0KBB+vOf/6y+ffvKw8NDdrtdr7/+uiQpICDAsc3ixYsVHx+va6+9VgkJCeratauOHDmiwsJCbdu2Ta+++mqDaoiKitLtt9+uzMxMeXt76/e//70+//xzxx1Ov5SWlqbc3FwNHjxYU6ZMUZ8+fXTy5Ent27dPOTk5WrRokbp169ak9yQxMVFvv/22XnzxRV177bUKDw93en3Hjh269957NXbsWEVGRsrHx0fvv/++duzY0eCZlrfeektZWVm6/vrr1bNnTxmGodWrV+vo0aMaMWJEk47jXI0ZM0bZ2dm6+OKLdemllyo/P19z586t8z5efvnl6tOnj6ZPn66qqipdcMEFWrNmjT788EOnfhdccIGmT5+uWbNmafLkyRo7dqwOHDigxx9/nNNSsBzCzWls27ZNhmGod+/eTu0VFRWO6d2amhpVVFRo+fLljn5LlixRdHS0vvrqK05VoUmSkpIUGxurZ599Vs8884wOHTokm82mbt26afDgwXrvvfc0fPhwR/9hw4bpk08+0ZNPPqmpU6fqhx9+UFBQkC655BLdfPPNjaphyZIlCgkJUXZ2tp577jlddtllev3113XLLbc49QsNDdXWrVv1xBNPaO7cufr222/Vvn17RUREaOTIkbrgggua9F5IP/+yDwkJ0Xfffed0IXGtLl26qFevXsrKytKBAwdks9nUs2dPzZ8/X/fdd1+D9hUZGakOHTpozpw5OnTokHx8fNSnTx9lZ2efdcbIVZ599ll5e3srPT1dx48f16BBg7R69Wo98sgjTv08PT21du1a3XvvvUpKSpKvr69uueUWPf/88xo9erRT37S0NLVt21ZZWVn6xz/+oYsvvliLFi3SvHnzWuSYgJZiMwzDMLsId2Cz2bRmzRpdf/31kqRVq1bptttu0xdffFHnse/t2rVTly5d9Nhjj2n27NlOpw1++ukntWnTRuvXr2+x/+EBAID/YObmNAYOHKjq6mqVlJRoyJAh9fa56qqrVFVVpW+++cbx/T5ff/21JHFrJQAAJjmvZ26OHz+u3bt3S/o5zGRkZGjYsGHq2LGjunfvrttvv115eXmaP3++Bg4cqNLSUr3//vvq37+/Ro0apZqaGl1++eVq166dMjMzVVNTo3vuuUcBAQFav369yUcHoLnU1NSc9Rk6v34WEICWc16Hm40bNzo9J6PWhAkTlJ2drVOnTmnWrFlavny5Dh48qKCgIMXGxmrmzJnq37+/JOnQoUO67777tH79erVt21bx8fGaP3++Onbs2NKHA6CFJCQk6KWXXjpjn/P4n1bAdOd1uAGAxti3b1+d58j8WkxMTAtVA+DXCDcAAMBSeIgfAACwlPPuireamhodOnRI7du3b/Aj4AEAgDkMw9CxY8cUFhYmD48zz82cd+Hm0KFDdZ5sCgAAWocDBw6c9Ynn5124qf1+nQMHDtR5hDwAAHBP5eXlCg8PP6fvyTvvwk3tqaiAgADCDQAArcy5XFLCBcUAAMBSCDcAAMBSCDcAAMBSzrtrbgAAcGfV1dU6deqU2WWYwsfH56y3eZ8Lwg0AAG7AMAwVFxfr6NGjZpdiGg8PD0VERMjHx6dJ4xBuAABwA7XBpnPnzmrTps1596DZ2ofs2u12de/evUnHT7gBAMBk1dXVjmATFBRkdjmm6dSpkw4dOqSqqip5e3s3ehwuKAYAwGS119i0adPG5ErMVXs6qrq6uknjEG4AAHAT59upqF9z1fETbgAAgKUQbgAAcHNDhw7V1KlTmzSGYRj685//rI4dO8pms2n79u0uqa0hEhISdP311zf7frigGAAAN7d69eomXWArSevWrVN2drY2btyonj17Kjg42EXVuR/CDQAAbq5jx45NHuObb75RaGioBg8efNo+lZWVTX7GjDvgtBQAAG7ul6elsrKyFBkZKT8/P4WEhOimm2466/YJCQm67777VFRUJJvNpgsvvNAx7r333quUlBQFBwdrxIgRkqSMjAz1799fbdu2VXh4uJKTk3X8+HHHeI8//rguu+wyp31kZmY6xpV+vuMpJSVFHTp0UFBQkGbMmCHDMJr0PpwrU8PNBx98oOuuu05hYWGy2Wx64403zrrNpk2bFB0dLT8/P/Xs2VOLFi1q/kIBAHADW7du1ZQpU5SWlqavvvpK69at09VXX33W7Z599lmlpaWpW7dustvt+vTTTx2vvfTSS/Ly8lJeXp4WL14s6ecnBT/33HP6/PPP9dJLL+n999/XjBkzGlTr/PnztXTpUi1ZskQffvihjhw5ojVr1jTsgBvJ1NNSJ06c0IABAzRx4kTdeOONZ+2/d+9ejRo1Snfeeaf++c9/Ki8vT8nJyerUqdM5bd+Soh9cbnYJ+P/y5443uwQAcImioiK1bdtWY8aMUfv27dWjRw8NHDjwrNsFBgaqffv28vT0VJcuXZxeu+iiizRnzhyntl9evBwREaEnnnhCd999t7Kyss651szMTKWmpjp+Py9atEjvvvvuOW/fFKaGm/j4eMXHx59z/0WLFql79+7KzMyUJEVFRWnr1q2aN2+e24UbAABcbcSIEerRo4d69uypkSNHauTIkbrhhhua9PC/mJiYOm0bNmzQ7NmztXPnTpWXl6uqqkonT57UiRMn1LZt27OOWVZWJrvdrtjYWEebl5eXYmJiWuTUVKu65uajjz5SXFycU9u1116rrVu3nvYbVCsqKlReXu60AADQGrVv317btm3TypUrFRoaqkcffVQDBgxo0pdt/jqs7N+/X6NGjVK/fv30+uuvKz8/XwsWLJD0nycpe3h41Akp7vRN5q0q3BQXFyskJMSpLSQkRFVVVSotLa13m/T0dAUGBjqW8PDwligVAIBm4eXlpd///veaM2eOduzYoX379un999932fhbt25VVVWV5s+fr9/85jfq3bu3Dh065NSnU6dOKi4udgo4v3xuTmBgoEJDQ/Xxxx872qqqqpSfn++yOs+k1d0K/utHM9e+sad7ZHNqaqpSUlIc6+Xl5QQcAECr9NZbb2nPnj26+uqrdcEFFygnJ0c1NTXq06ePy/bRq1cvVVVV6e9//7uuu+465eXl1bl5Z+jQofr+++81Z84c3XTTTVq3bp3eeecdBQQEOPrcf//9euqppxQZGamoqChlZGQ0aYapIVrVzE2XLl1UXFzs1FZSUiIvL6/Tfouqr6+vAgICnBYAAFqjDh06aPXq1Ro+fLiioqK0aNEirVy5Un379nXZPi677DJlZGTo6aefVr9+/bRixQqlp6c79YmKilJWVpYWLFigAQMG6JNPPtH06dOd+jzwwAMaP368EhISFBsbq/bt2+uGG25wWZ1nYjNa6qbzs7DZbFqzZs0ZH8v80EMPae3atdq5c6ej7e6779b27dv10UcfndN+ysvLFRgYqLKysmYNOtwt5T64WwqAuzt58qT27t2riIgI+fn5mV2Oac70PjTk97epMzfHjx/X9u3bHefp9u7dq+3bt6uoqEjSz6eUxo//zy+mpKQk7d+/XykpKSosLHTcP//rtAgAAM5fpl5zs3XrVg0bNsyxXnttzIQJE5SdnS273e4IOtLP99rn5ORo2rRpWrBggcLCwvTcc89xGzgA4LxWVFSkSy655LSv79y5U927d2/BisxlargZOnToGe93z87OrtN2zTXXaNu2bc1YFQAArUtYWNgZv+U7LCys5YpxA63ubikAAODMy8tLF110kdlluI1WdbcUAADA2RBuAACApRBuAACApRBuAACApRBuAACApRBuAACApXArOAAArUhLfr1PY7++JisrS3PnzpXdblffvn2VmZmpIUOGuLi602PmBgAAuMyqVas0depUPfzwwyooKNCQIUMUHx/v9I0DzY1wAwAAXCYjI0OJiYmaPHmyoqKilJmZqfDwcC1cuLDFaiDcAAAAl6isrFR+fr7i4uKc2uPi4rRly5YWq4NwAwAAXKK0tFTV1dUKCQlxag8JCVFxcXGL1UG4AQAALmWz2ZzWDcOo09acCDcAAMAlgoOD5enpWWeWpqSkpM5sTnMi3AAAAJfw8fFRdHS0cnNzndpzc3M1ePDgFquD59wAAACXSUlJ0R133KGYmBjFxsbqhRdeUFFRkZKSklqsBsINAABwmXHjxunw4cNKS0uT3W5Xv379lJOTox49erRYDYQbAABakcY+NbglJScnKzk52bT9c80NAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFL5+AQCAVqQorX+L7av7o581eJsPPvhAc+fOVX5+vux2u9asWaPrr7/e9cWdATM3AADAZU6cOKEBAwbo+eefN60GZm4AAIDLxMfHKz4+3tQamLkBAACWQrgBAACWQrgBAACWQrgBAACWQrgBAACWwt1SAADAZY4fP67du3c71vfu3avt27erY8eO6t69e4vUQLgBAAAus3XrVg0bNsyxnpKSIkmaMGGCsrOzW6QGwg0AAK1IY54a3JKGDh0qwzBMrYFrbgAAgKUQbgAAgKUQbgAAgKUQbgAAgKUQbgAAcBNmX4hrNlcdP+EGAACTeXt7S5J+/PFHkysxV2VlpSTJ09OzSeNwKzgAACbz9PRUhw4dVFJSIklq06aNbDabyVW1rJqaGn3//fdq06aNvLyaFk8INwAAuIEuXbpIkiPgnI88PDzUvXv3Jgc7wg0AAG7AZrMpNDRUnTt31qlTp8wuxxQ+Pj7y8Gj6FTOEGwAA3Iinp2eTrzk533FBMQAAsBTCDQAAsBROSwFAA0U/uNzsEvD/5c8db3YJcEPM3AAAAEsh3AAAAEsh3AAAAEsh3AAAAEsh3AAAAEsh3AAAAEsh3AAAAEsxPdxkZWUpIiJCfn5+io6O1ubNm8/Yf8WKFRowYIDatGmj0NBQTZw4UYcPH26hagEAgLszNdysWrVKU6dO1cMPP6yCggINGTJE8fHxKioqqrf/hx9+qPHjxysxMVFffPGFXn31VX366aeaPHlyC1cOAADclanhJiMjQ4mJiZo8ebKioqKUmZmp8PBwLVy4sN7+H3/8sS688EJNmTJFERER+u1vf6u77rpLW7dubeHKAQCAuzIt3FRWVio/P19xcXFO7XFxcdqyZUu92wwePFjffvutcnJyZBiGvvvuO7322msaPXr0afdTUVGh8vJypwUAAFiXaeGmtLRU1dXVCgkJcWoPCQlRcXFxvdsMHjxYK1as0Lhx4+Tj46MuXbqoQ4cO+vvf/37a/aSnpyswMNCxhIeHu/Q4AACAezH9gmKbzea0bhhGnbZaO3fu1JQpU/Too48qPz9f69at0969e5WUlHTa8VNTU1VWVuZYDhw44NL6AQCAezHtW8GDg4Pl6elZZ5ampKSkzmxOrfT0dF111VV68MEHJUmXXnqp2rZtqyFDhmjWrFkKDQ2ts42vr698fX1dfwAAAMAtmTZz4+Pjo+joaOXm5jq15+bmavDgwfVu8+OPP8rDw7lkT09PST/P+AAAAJh6WiolJUUvvviili5dqsLCQk2bNk1FRUWO00ypqakaP368o/91112n1atXa+HChdqzZ4/y8vI0ZcoUXXHFFQoLCzPrMAAAgBsx7bSUJI0bN06HDx9WWlqa7Ha7+vXrp5ycHPXo0UOSZLfbnZ55k5CQoGPHjun555/XAw88oA4dOmj48OF6+umnzToEAADgZmzGeXY+p7y8XIGBgSorK1NAQECz7Sf6weXNNjYaJn/u+LN3AhqAz7f74PN9/mjI72/T75YCAABwJcINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFMINAACwFNPDTVZWliIiIuTn56fo6Ght3rz5jP0rKir08MMPq0ePHvL19VWvXr20dOnSFqoWAAC4Oy8zd75q1SpNnTpVWVlZuuqqq7R48WLFx8dr586d6t69e73b3Hzzzfruu++0ZMkSXXTRRSopKVFVVVULVw4AANyVqeEmIyNDiYmJmjx5siQpMzNT7777rhYuXKj09PQ6/detW6dNmzZpz5496tixoyTpwgsvbMmSAQCAmzPttFRlZaXy8/MVFxfn1B4XF6ctW7bUu82bb76pmJgYzZkzR127dlXv3r01ffp0/fTTTy1RMgAAaAVMm7kpLS1VdXW1QkJCnNpDQkJUXFxc7zZ79uzRhx9+KD8/P61Zs0alpaVKTk7WkSNHTnvdTUVFhSoqKhzr5eXlrjsIAADgdky/oNhmszmtG4ZRp61WTU2NbDabVqxYoSuuuEKjRo1SRkaGsrOzTzt7k56ersDAQMcSHh7u8mMAAADuw7RwExwcLE9PzzqzNCUlJXVmc2qFhoaqa9euCgwMdLRFRUXJMAx9++239W6TmpqqsrIyx3LgwAHXHQQAAHA7poUbHx8fRUdHKzc316k9NzdXgwcPrnebq666SocOHdLx48cdbV9//bU8PDzUrVu3erfx9fVVQECA0wIAAKzL1NNSKSkpevHFF7V06VIVFhZq2rRpKioqUlJSkqSfZ13Gjx/v6H/rrbcqKChIEydO1M6dO/XBBx/owQcf1KRJk+Tv72/WYQAAADdi6q3g48aN0+HDh5WWlia73a5+/fopJydHPXr0kCTZ7XYVFRU5+rdr1065ubm67777FBMTo6CgIN18882aNWuWWYcAAADc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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# first compare between category and is_fraud\n", "sns.countplot(data = df, x = 'gender', hue = 'is_fraud')\n", "plt.legend(title = 'is_fraud')\n", "plt.title('Gender Vs Is_Fraud')" ] }, { "cell_type": "code", "execution_count": 30, "id": "0c7747d9-da5c-4562-8974-fda343337a6f", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Age Distribution on Fraud')" ] }, "execution_count": 30, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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rystXLjQkGS8//77Nu0zZ840JBkbN260OU5vb28jMzPT2paSkmI4ODgYUVFR193P5a9xQa+4uDjr9j09PY309PTrbis3N9e4ePGiMX36dMPLy8vIy8uzqbEw34v+/fsbbm5uRkpKirUtJyfHaNKkiSHJOHz48HVrAErqlr4stWXLFvXs2VO+vr6yWCz6+OOPi7wNwzA0e/ZsNWrUSC4uLvLz89Prr79e+sWi3Fi6dKnc3Nz06KOPSro0YbNv377aunWrfv31V2u/b775Ru7u7nrggQds1n/sscdsln/77Tf9/PPPevzxxyVJOTk51lf37t2VnJysAwcOlKhm46rLCwW55557tHz5cs2YMUM7d+4s1iWEv/71r0Uacbl8zJf169dPTk5O2rx5c5H3XRSbNm2SpHwjYn379lWVKlX01Vdf2bQ3b97cOqohSa6urmrUqJF+//33G+6nSpUq6tOnj0375f1evZ8OHTrI3d3duuzt7a1atWrdcD+XjRs3Trt27bJ5XTkXrGPHjrrtttsKrLNz587y9PSUo6OjKlWqpMjISKWlpSk1NbVQ+77S5s2b1alTJ3l7e1vbHB0dCxy1BG6GWzrcnDt3Ts2aNdO8efOKvY1x48ZpyZIlmj17tn7++Wd99tlnuueee0qxSpQnv/32m7Zs2aIePXrIMAydPn1ap0+ftv7yunIeRlpams0P98uubjtx4oQk6fnnn1elSpVsXqNHj5akEt8yffmXo6+v7zX7rFmzRoMHD9aSJUsUGhqq6tWra9CgQUpJSSn0fnx8fIpUV+3atW2WnZyc5OXlZb0UdrOkpaXJyclJNWvWtGm3WCyqXbt2vv17eXnl24aLi4vOnz9/w/3Url3belnoslq1asnJyanU9nPZ7bffrpYtW9q8rgxLBX1/vv/+e4WFhUmS3n77bW3btk27du3SpEmTJKnQ+77S5eO+WkFtwM1wS8+56datm7p163bN97OzszV58mStXLlSp0+fVnBwsGbOnKn27dtLkhITE7VgwQL9+OOPaty4cRlVDXtatmyZDMPQhx9+qA8//DDf+++++65mzJghR0dHeXl56fvvv8/X5+qwUKNGDUlSRESEHn744QL3W5Lz6/z58/r3v/+t+vXrX3O+zeU6oqOjFR0draSkJH366ad66aWXlJqaqtjY2ELt6+pf4jeSkpKiOnXqWJdz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LVumxMRETZgwQUlJSdbLTBERERo0aJC1f8+ePbV27VotWLBAhw4d0rZt2zR27Fjdc8898vX1tddhAACAcsTJnjvv37+/0tLSNH36dCUnJys4OFjr169XQECAJCk5OdnmmTdDhgzRmTNnNG/ePD333HOqVq2aOnbsqJkzZ9rrEAAAQDljMa51PcekMjMz5enpqYyMDC5RwVRCXlhh7xLKhYRZg27cCUCFU5Tf33a/WwoAAKA0EW4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpEG4AAICpFCvcdOzYUadPn87XnpmZqY4dO5a0JgAAgGIrVrj5+uuvlZ2dna/9woUL2rp1a4mLAgAAKC6nonT+4YcfrP/ev3+/UlJSrMu5ubmKjY1VnTp1Sq86AACAIipSuGnevLksFossFkuBl5/c3Nz0j3/8o9SKAwAAKKoihZvDhw/LMAzVq1dP33//vWrWrGl9z9nZWbVq1ZKjo2OpFwkAAFBYRQo3AQEBkqS8vLybUgwAAEBJFSncXOmXX37R119/rdTU1HxhJzIyssSFAQAAFEexws3bb7+tp59+WjVq1FDt2rVlsVis71ksFsINAACwm2KFmxkzZui1117TxIkTS7seAACAEinWc27++9//qm/fvqVdCwAAQIkVK9z07dtXGzduLO1aAAAASqxYl6UaNGigV155RTt37lTTpk1VqVIlm/fHjh1bKsUBAAAUVbHCzeLFi1W1alV98803+uabb2zes1gshBsAAGA3xQo3hw8fLu06AAAASkWx5twAAACUV8UauRk6dOh131+2bFmxigEAACipYt8KfuUrNTVVmzZt0tq1a3X69OkibSsmJkaBgYFydXVVSEiItm7det3+WVlZmjRpkgICAuTi4qL69esTpgAAgFWxRm7WrVuXry0vL0+jR49WvXr1Cr2dNWvWaPz48YqJiVGbNm20aNEidevWTfv375e/v3+B6/Tr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XEq3eAAAUG7ZLdxIUnh4uAYOHKiWLVsqNDRUixcvVlJSkkaNGiXp0qjLH3/8oRUrVsjBwUHBwcE269eqVUuurq752gEAwK3LruGmf//+SktL0/Tp05WcnKzg4GCtX79eAQEBkqTk5OQbPvMGAADgShbDMAx7F1GWMjMz5enpqYyMDHl4eNi7HKDUhLywwt4llAsJswbZuwRcgfPyEs7LkivK72+73y0FAABQmgg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVAg3AADAVOwebmJiYhQYGChXV1eFhIRo69at1+y7du1adenSRTVr1pSHh4dCQ0O1YcOGMqwWAACUd3YNN2vWrNH48eM1adIk7dmzR23btlW3bt2UlJRUYP8tW7aoS5cuWr9+vRISEtShQwf17NlTe/bsKePKAQBAeWXXcDNnzhwNGzZMw4cPV1BQkKKjo+Xn56cFCxYU2D86OlovvviiWrVqpYYNG+r1119Xw4YN9dlnn5Vx5QAAoLyyW7jJzs5WQkKCwsLCbNrDwsK0ffv2Qm0jLy9PZ86cUfXq1a/ZJysrS5mZmTYvAABgXnYLN6dOnVJubq68vb1t2r29vZWSklKobbz55ps6d+6c+vXrd80+UVFR8vT0tL78/PxKVDcAACjf7D6h2GKx2CwbhpGvrSCrVq3S1KlTtWbNGtWqVeua/SIiIpSRkWF9HT16tMQ1AwCA8svJXjuuUaOGHB0d843SpKam5hvNudqaNWs0bNgwffDBB+rcufN1+7q4uMjFxaXE9QIAgIrBbiM3zs7OCgkJUVxcnE17XFycWrdufc31Vq1apSFDhui9995Tjx49bnaZAACggrHb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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sns.countplot(data = df, x = 'age', hue = 'is_fraud', order = ['Young', 'Middle_age', 'Old'])\n", "plt.legend(title = 'is_fraud')\n", "plt.title('Age Distribution on Fraud')" ] }, { "cell_type": "code", "execution_count": 31, "id": "79c859d8-c3a5-41f4-854a-3b79f7aa31b9", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]),\n", " [Text(0, 0, 'misc_net'),\n", " Text(1, 0, 'grocery_pos'),\n", " Text(2, 0, 'entertainment'),\n", " Text(3, 0, 'gas_transport'),\n", " Text(4, 0, 'misc_pos'),\n", " Text(5, 0, 'grocery_net'),\n", " Text(6, 0, 'shopping_net'),\n", " Text(7, 0, 'shopping_pos'),\n", " Text(8, 0, 'food_dining'),\n", " Text(9, 0, 'personal_care'),\n", " Text(10, 0, 'health_fitness'),\n", " Text(11, 0, 'travel'),\n", " Text(12, 0, 'kids_pets'),\n", " Text(13, 0, 'home')])" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA20AAAL+CAYAAAA+d/yTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAADBtUlEQVR4nOzde3zP9f//8fvb2MxhM2anHCuEOTXl9MnZkEMl4aOG0upDJSGlPuVQKKKDUvJRCqWDdEALiRJynJKSilAbctgct9kevz/89vrubXNss9e4XS+XXS57v17P9+v1fL1f78Pr/no+X8+Xx8xMAAAAAABXKpTfFQAAAAAAnB6hDQAAAABcjNAGAAAAAC5GaAMAAAAAFyO0AQAAAICLEdoAAAAAwMUIbQAAAADgYoQ2AAAAAHAxQhsAAAAAuBihDQBc4vvvv9edd96pypUrq2jRoipRooSuvfZajRs3Tvv37z/v5S1YsEAjRozI/YoWINu3b5fH49H06dOdaSNGjJDH4zmv5Rw9elQjRozQ0qVLz+t5Oa2rUqVK6tix43kt52zeeecdvfDCCznO83g8l/T7IPM1zunv5Zdfzu/qOZo3b67mzZvndzUAFFCF87sCAABp6tSp6t+/v6pVq6aHH35YNWrUUFpamtauXavXXntNK1eu1Ny5c89rmQsWLNArr7xySR+wX4i7775b7dq1O6/nHD16VCNHjpSk8zrwvpB1XYh33nlHmzZt0sCBA7PNW7lypcqVK5fndchvcXFxCgwM9JpWuXLlfKoNAOQuQhsA5LOVK1eqX79+atOmjT7++GP5+fk589q0aaPBgwcrLi4uH2uYt9LT03XixAmv7c5L5cqVy/MQc/ToURUrVuyirOtsGjZsmK/rv1iioqIUHBx8TmWPHTumokWLnneLKwDkF7pHAkA+GzNmjDwej15//fUcg4uvr686d+7sPH7vvfcUHR2t8PBw+fv7q3r16nr00Ud15MgRp0yfPn30yiuvSJJXd7Ht27dLksxMkydPVt26deXv76+goCB17dpVv//+u9e6zUxjxoxRxYoVVbRoUdWvX1+LFi3KsavXjh07dMcddygkJER+fn6qXr26JkyYoIyMDKdMZnfFcePG6emnn1blypXl5+enRYsWqVSpUrr33nuzbf/27dvl4+Oj8ePHn/F1/Ouvv9StWzeVLFlSgYGB6t69uxITE7OVy6nL4pIlS9S8eXOVKVNG/v7+qlChgm699VYdPXpU27dvV9myZSVJI0eOdF7LPn36eC1v/fr16tq1q4KCgnTVVVeddl2Z5s6dq9q1a6to0aK68sor9dJLL3nNnz59utc+y7R06VJ5PB6nq2bz5s01f/58/fHHH177OlNO3SM3bdqkm266SUFBQSpatKjq1q2rt956K8f1vPvuu3r88ccVERGhgIAAtW7dWlu2bMlxm061fPlytWrVSiVLllSxYsXUuHFjzZ8/P8ft/Oqrr9SvXz8FBwerTJky6tKli/76669zWs+ZZC5/4cKFuuuuu1S2bFkVK1ZMKSkp+vXXX3XnnXeqSpUqKlasmK644gp16tRJP/zwQ47LONu+kE5+ZsaNG+d8Zq699lp9/vnn/3g7AFzeaGkDgHyUnp6uJUuWKCoqSuXLlz+n52zdulU33nijBg4cqOLFi+vnn3/Ws88+q9WrV2vJkiWSpCeeeEJHjhzRhx9+qJUrVzrPDQ8PlyTde++9mj59ugYMGKBnn31W+/fv16hRo9S4cWNt3LhRoaGhkqTHH39cY8eO1T333KMuXbpo586duvvuu5WWlqaqVas6y927d68aN26s1NRUPfXUU6pUqZLmzZunIUOG6LffftPkyZO9tuGll15S1apV9dxzzykgIEBVqlTRXXfdpddff13jxo3z6uY2efJk+fr66q677jrta3Ls2DG1bt1af/31l8aOHauqVatq/vz56t69+1lfz+3bt6tDhw664YYb9MYbb6hUqVL6888/FRcXp9TUVIWHhysuLk7t2rVT3759dffdd0uSE+QydenSRT169NB//vMfrwCdk/j4eA0cOFAjRoxQWFiYZs2apQcffFCpqakaMmTIWeuc1eTJk3XPPffot99+O6cutFu2bFHjxo0VEhKil156SWXKlNHMmTPVp08f7d69W0OHDvUq/9hjj6lJkyb63//+p+TkZD3yyCPq1KmTfvrpJ/n4+Jx2PcuWLVObNm1Uu3ZtTZs2TX5+fpo8ebI6deqkd999N9u+ufvuu9WhQwe988472rlzpx5++GHdcccdznv6bDJbbDN5PB6v+t11113q0KGDZsyYoSNHjqhIkSL666+/VKZMGT3zzDMqW7as9u/fr7feeksNGjTQhg0bVK1atXNad1YjR47UyJEj1bdvX3Xt2lU7d+5UbGys0tPTL2h5ACBJMgBAvklMTDRJ1qNHjwt6fkZGhqWlpdmyZctMkm3cuNGZd99991lOX/MrV640STZhwgSv6Tt37jR/f38bOnSomZnt37/f/Pz8rHv37jk+v1mzZs60Rx991CTZd99951W2X79+5vF4bMuWLWZmtm3bNpNkV111laWmpnqV/e2336xQoUL2/PPPO9OOHTtmZcqUsTvvvPOMr8Orr75qkuyTTz7xmh4bG2uS7M0333SmDR8+3Ot1+fDDD02SxcfHn3b5e/fuNUk2fPjwbPMyl/fkk0+edl5WFStWNI/Hk219bdq0sYCAADty5IiZmb355psmybZt2+ZV7quvvjJJ9tVXXznTOnToYBUrVsyx7qfWu0ePHubn52c7duzwKte+fXsrVqyYHTx40Gs9N954o1e5999/3yTZypUrc1xfpoYNG1pISIgdOnTImXbixAmLjIy0cuXKWUZGhtd29u/f3+v548aNM0mWkJBwxvVkvsan/l1xxRVey+/Vq9cZl5NZv9TUVKtSpYo99NBDzvRz3RcHDhywokWL2i233OJV7ttvv832mQGA80H3SAAoYH7//Xf17NlTYWFh8vHxUZEiRdSsWTNJ0k8//XTW58+bN08ej0d33HGHTpw44fyFhYWpTp06TlevVatWKSUlRd26dfN6fsOGDVWpUiWvaUuWLFGNGjV0/fXXe03v06ePzCxba0nnzp1VpEgRr2lXXnmlOnbsqMmTJ8vMJJ0cYGPfvn26//77z7hNX331lUqWLOnVjVSSevbsecbnSVLdunXl6+ure+65R2+99Va2LqLn6tZbbz3nsjVr1lSdOnW8pvXs2VPJyclav379Ba3/XC1ZskStWrXK1rLbp08fHT161KtlVlK217R27dqSpD/++OO06zhy5Ii+++47de3aVSVKlHCm+/j4KCYmRrt27crWxfJC1pPV4sWLtWbNGudvwYIFXvNz2j8nTpzQmDFjVKNGDfn6+qpw4cLy9fXV1q1bz+mzdKqVK1fq+PHjuv32272mN27cWBUrVjzv5QFAJrpHAkA+Cg4OVrFixbRt27ZzKn/48GHdcMMNKlq0qJ5++mlVrVpVxYoV086dO9WlSxcdO3bsrMvYvXu3zMzpAnmqK6+8UpK0b98+Scqx3KnT9u3bly3ISVJERITXsjJldtM81YMPPqhWrVpp0aJFio6O1iuvvKJGjRrp2muvPeM27du3L8d6hoWFnfF5knTVVVdp8eLFGjdunO677z4dOXJEV155pQYMGKAHH3zwrM/PdLptyklO9cqcduprldv27duXY11Pt6/KlCnj9TjzusszvdcOHDggM8vz9WRVp06dMw5EklNdBg0apFdeeUWPPPKImjVrpqCgIBUqVEh33333Oa83q8xtOtP+BYALQWgDgHzk4+OjVq1a6fPPP9euXbvOOtLgkiVL9Ndff2np0qVO65okHTx48JzXGRwcLI/Ho2+++SbHgU8yp2UeRO/evTtbmcTERK+QVqZMGSUkJGQrlzmQxKkH06cbnKNly5aKjIzUyy+/rBIlSmj9+vWaOXPmWbepTJkyWr16dY71PBc33HCDbrjhBqWnp2vt2rWaNGmSBg4cqNDQUPXo0eOclnE+IxHmVK/MaZmve9GiRSVJKSkpXuX+/vvvc15PTs53X12IzPCT1+s5Hzntn5kzZ6pXr14aM2aM1/S///5bpUqVch6f677I3Hen2785ndgAgHNB90gAyGfDhg2TmSk2NlapqanZ5qelpemzzz6T9H8HnqeGrSlTpmR73ulaKjp27Cgz059//qn69etn+6tVq5YkqUGDBvLz89N7773n9fxVq1Zl67LWqlUrbd68OVvXvrffflsej0ctWrQ46+uQacCAAZo/f76GDRum0NBQ3XbbbWd9TosWLXTo0CF9+umnXtPfeeedc16vdDJEN2jQwBl5M3N7zrfV52x+/PFHbdy40WvaO++8o5IlSzqtipkH+N9//71XuVO3MbN+51q3Vq1aOeE/q7ffflvFihXLlVsEFC9eXA0aNNBHH33kVa+MjAzNnDlT5cqV8xrIJr94PJ5sn6X58+frzz//9Jp2rvuiYcOGKlq0qGbNmuU1fcWKFefczRMAckJLGwDks0aNGunVV19V//79FRUVpX79+qlmzZpKS0vThg0b9PrrrysyMlKdOnVS48aNFRQUpP/85z8aPny4ihQpolmzZmULAJKc8PXss8+qffv28vHxUe3atdWkSRPdc889uvPOO7V27Vo1bdpUxYsXV0JCgpYvX65atWqpX79+Kl26tAYNGqSxY8cqKChIt9xyi3bt2qWRI0cqPDxchQr933m/hx56SG+//bY6dOigUaNGqWLFipo/f74mT56sfv36ndcB+h133KFhw4bp66+/1n//+1/5+vqe9Tm9evXS888/r169emn06NGqUqWKFixYoC+++OKsz33ttde0ZMkSdejQQRUqVNDx48f1xhtvSJJat24tSSpZsqQqVqyoTz75RK1atVLp0qUVHBx8wS0nERER6ty5s0aMGKHw8HDNnDlTixYt0rPPPqtixYpJkq677jpVq1ZNQ4YM0YkTJxQUFKS5c+dq+fLl2ZZXq1YtffTRR3r11VcVFRWlQoUKqX79+jmue/jw4Zo3b55atGihJ598UqVLl9asWbM0f/78bCN3/hNjx45VmzZt1KJFCw0ZMkS+vr6aPHmyNm3apHfffdcV90jr2LGjpk+frmuuuUa1a9fWunXrNH78+Gwt3ue6L4KCgjRkyBA9/fTTuvvuu3Xbbbdp586dziihAHDB8nMUFADA/4mPj7fevXtbhQoVzNfX14oXL2716tWzJ5980vbs2eOUW7FihTVq1MiKFStmZcuWtbvvvtvWr1+fbZTElJQUu/vuu61s2bLm8XiyjX73xhtvWIMGDax48eLm7+9vV111lfXq1cvWrl3rlMnIyLCnn37aypUrZ76+vla7dm2bN2+e1alTJ9sIeX/88Yf17NnTypQpY0WKFLFq1arZ+PHjLT093SmTOXrk+PHjz/ha9OnTxwoXLmy7du0659dv165dduutt1qJEiWsZMmSduutt9qKFSvOOnrkypUr7ZZbbrGKFSuan5+flSlTxpo1a2affvqp1/IXL15s9erVMz8/P5NkvXv39lre3r17s9XpdKNHdujQwT788EOrWbOm+fr6WqVKlWzixInZnv/LL79YdHS0BQQEWNmyZe2BBx6w+fPnZxs9cv/+/da1a1crVaqUs68zKYdRL3/44Qfr1KmTBQYGmq+vr9WpU8frNTL7v5ERP/jgA6/pmfvw1PI5+eabb6xly5bOe6xhw4b22WefeZXJHJlxzZo1Oa4/63bm5Eyv/5mWb3ZytMe+fftaSEiIFStWzP71r3/ZN998Y82aNcs20uO57ouMjAwbO3aslS9f3vnMfPbZZzkuEwDOlcfs/w/RBQDAOdi2bZuuueYaDR8+XI899liuLz81NVWVKlXSv/71L73//vu5vnwAAAoaukcCAE5r48aNevfdd9W4cWMFBARoy5YtGjdunAICAtS3b99cXdfevXu1ZcsWvfnmm9q9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qBUrVqhatWpauXKlIiMjncAmSW3btlVKSorWrVunFi1aaOXKlWrWrJn8/Py8ygwbNkzbt29X5cqVc6x3SkqKUlJSnMfJycn/+LUAAAAALndRD7+dJ8tdN75Xniz3nygwoe2tt95SyZIl1aVLF6/pt99+uypXrqywsDBt2rRJw4YN08aNG7Vo0SJJUmJiokJCQrItLyQkRImJiU6Z0NBQr/lBQUHy9fX1KlOpUiWvMpnPSUxMPG1oGzt2rEaOHHn+GwwAAAAAKkCh7Y033tDtt9+uokWLek2PjY11/o+MjFSVKlVUv359rV+/Xtdee60k5dh10cy8pl9ImcwuKWfqGjls2DDnGgPpZEtb+fLlT1seAAAAALIqEEP+f/PNN9qyZYvuvvvus5a99tprVaRIEW3dulXSyevidu/ena3c3r17nZaysLAwp0Ut04EDB5SWlnbGMnv27JGkbK10Wfn5+SkgIMDrDwAAAADOVYFoaZs2bZqioqJUp06ds5b98ccflZaWpvDwcElSo0aNlJSUpNWrV+v666+XJH333XdKSkpS48aNnTKjR49WQkKC87yFCxfKz89PUVFRTpnHHntMqamp8vX1dcpERERk6zYJb3nV31hyZ59jAAXD5T6Ax+W+/QBQkORrS9u53F8mOTlZH3zwQY6tbL/99ptGjRqltWvXavv27VqwYIFuu+021atXT02aNJEkVa9eXe3atVNsbKxWrVqlVatWKTY2Vh07dlS1atUkSdHR0apRo4ZiYmK0YcMGffnllxoyZIhiY2OdlrGePXvKz89Pffr00aZNmzR37lyNGTOGkSMBoIApUqSIJOno0aP5XJP8lbn9ma8HAMC98rWl7VzuLzN79myZmf79739ne76vr6++/PJLvfjiizp8+LDKly+vDh06aPjw4fLx8XHKzZo1SwMGDFB0dLQkqXPnznr55Zed+T4+Ppo/f7769++vJk2ayN/fXz179tRzzz3nlAkMDNSiRYt03333qX79+goKCtKgQYO8rlcDALifj4+PSpUq5XRxL1as2GV18s3MdPToUe3Zs0elSpXy+r0EALiTx+gfcVElJycrMDBQSUlJl831bXSPLLgup6F0cXkxMyUmJurgwYP5XZV8U6pUKYWFhV1WgRXApeVSOE4512xQIK5pAwAgN3k8HoWHhyskJERpaWn5XZ2LrkiRIrSw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bdy4UQ899JC6deumXbt25Xe1ck1GRoYKFTp5aDFmzBjdeeedBXL7sn4WZ86cqSFDhuiPP/7I51rlvZx+6y6l3z83haPY2FhNnjxZw4cPvyyDW9bP2IEDB/K5Nv/MxfqMENqQo2+//VZXX321du7cqaFDh+rBBx9U0aJF87taF9Wjjz6qfv366ZdffinwXyhnYmb67LPP1KdPH913333q0aOHevXqpfDw8Pyu2j+SkZGhgIAALV++XDVq1NAbb7yhmTNnKjg4OL+rlqNTD3aHDx/utD5dykJCQjR8+HAdOXJE77//vv73v/+pdu3al2yX1ipVqigxMVFdunTR9OnTFR8fr3Llyl0yB2yZ7+GhQ4fqlVdeUfv27Qvcvsz6WdywYYPef/99ff7553rxxRe1c+fOfK5d3sl6EH3o0CElJiZK+r8TRwU9vGXdr3PmzNE333yTb3XJfC379u2rKVOmXHbBLeu+eOaZZ3TnnXcWmJMimfvuxIkTOn78uKSL+BkxIAebNm2y2267zYKCgiwoKMj+/PNPMzPLyMjI55pdHE8//bSFhYXZ119/bcePH882Pz09PR9qlbe6dOliHo/H+vbta2YFe1+fOHHC+b9r167m8XisZcuWzjQ377+hQ4dacHCwffjhh/bXX395zXNzvS9E5nvs559/tubNm1uLFi0sKirKvvnmG2d+QX4fnirzfTl06FArUqSINW7c2FavXu3Mv1S2df78+RYeHm7fffedM+3QoUO2detWO3ToUD7W7PwMHDjQrr32WouJibEbbrjBSpYsaQ8++KBt3749v6uW67K+95566ilr3ry5hYSE2O23324ffPBBgX9vZq3/0KFD7eqrr7bx48fbvn37nHkXYxsz15H5XZD5+LXXXrNChQrZU089dcl9z5/Jww8/bOHh4fbmm2/ar7/+mt/VOavM/bVgwQK79dZbrW7dutavXz/74osvLsr6CW04rSeeeMI8Ho8FBwfbli1bzMz7YPhStW/fPmvSpIlNmTLFzMx27dply5Yts/vuu8+efvppO3bsWD7XMPdlZGRYnz597MYbbzSPx2OvvfaaM70g/1hPnjzZunfvblOnTrWwsDC76aabnHlpaWn5V7HT+Pjjj618+fK2ceNGZ9q+ffu8Dn4vhR/0U7chIyPD0tPTbe3atXbTTTdZ3bp1bfny5V5l9u7dezGrmKtOPSj89NNPLS4uzurUqWPR0dH21VdfnfF5Bc3UqVOtcePGZma2fv16e/rpp61KlSpWqlQpe+CBB2z//v35XMOzW7BggZUuXdrWrl3rvF+feuopq1Gjhj344IO2c+fOfK5h3hg+fLiFhobazJkzbdOmTXbllVdagwYNCsQB9bkYM2aMBQcH26pVqy76d2nm5/nLL7+0QYMGWY8ePezZZ5+1hIQEMzN7/fXXL6vg9umnn1q5cuW8ft+OHDliP//8s6uPNT/99FMrXry4Pfroo/bxxx9bnTp1rFatWrZu3bo8XzehDY7ML5TML4u1a9faggULrHv37hYaGmrr1683M7PU1NR8q+PFkBnannzySZs9e7Z169bN/vWvf1mDBg2sVq1aNmDAgPyuYq7I6exiRkaGjRw50iu4ZSoIP9pZf+gmT55swcHBtmnTJjM7+UMZEhLiFdzMzD766CPXHBy/++67FhUVZcePH7eff/7ZnnrqKatUqZJVqFDBq6WwIMu6j9555x177rnnbNiwYfbrr79aRkaGrVmzxrp06WJRUVH29ddfm5nZrbfeapMmTcqvKv8jWbd327Zttnv3btu9e7eZnWxhrF27tkVHRzvbamb2yiuvXPR6XqicvkeWL19uHo/HunTpYuXKlbOYmBibNm2avfHGG+br6+t1UsKtPvroIytfvny2VrX//ve/5uvrawMHDrykWtwyMjJs27ZtFhUVZQsWLDCzk/vR39/f/ve//5lZwT5pm5GRYXv37rVWrVrZjBkzzMxs+/bt9vnnn1uPHj3sySeftOTk5Dyvx0cffWTFihWzhx56yO6//35r1KiRXXPNNc66//e//5mfn589+uijl1Rwyzwxl9XUqVPtuuuuMzOzjRs32ujRo61q1arm5+dnDzzwgOvebxkZGbZ//35r3ry5Pffcc2Zmdvz4cQsLC7MHH3zwotSB0AYz8z6wSExMtN9++815/Ntvv9lNN91kYWFhXj+2r7/+uv3xxx8XtZ4Xy7Bhw6xu3brm5+dnw4YNs2XLlpmZWa9evez+++/P59r9c5kHWEuXLrUxY8bYqFGjbN++fWZ2sgVq1KhRVqhQIXvttdcsIyPDnnrqKYuOjr4oP2q5YfXq1fbf//7Xpk+f7kzLyMiwJUuWWGhoqLVv397Wr19vbdu2tdatW+dLaDs1LJuZffjhh1ajRg1r27atlStXznr16mUvvPCCffLJJxYaGuq8Dy8Fmd1iYmJi7LrrrrOrr77aXn31VTMzW7ZsmXXv3t1Klixp9evXt0qVKhXIk0VZ9/GoUaPsuuuus+rVq1uVKlVszpw5ZnbyZEjdunWtdevW9vzzz1unTp2sVKlSBeKALWsdExISLDk52Q4cOGBmZnPnzrWePXva22+/7XSv379/v1133XVeXULdIKfP4scff2yhoaH2ww8/mJlZSkqKmZklJSXZFVdcYXXr1rUnnnjCkpKSLn6Fc8mp77G//vrLqlevbmYn91+JEiWcz+Thw4ftvffes8TExItezwuV02foX//6l9122232xRdfWOfOna1x48bWpUsX8/f3t4EDB+Zpff766y+rW7euvfzyy2ZmtnPnTgsJCbH+/ft7lXvppZesTJkyBbp3wal+/PFH5/9XX33Vli9fbitWrLCiRYta+/btrUKFChYTE2NTp061Dz74wDwej9NQ4CZHjx61+vXr2/bt22379u0WERFhsbGxzvzFixc733d5gdAGrx+sJ554who0aGAlS5a0Tp062bhx4yw9Pd1++ukn69q1qwUFBdn06dOtdevWdu211xaIA4tzMXfuXJs6dapNnDjR6bqzY8cO+/nnn73KtWrVyh5++OH8qGKumzdvnvn4+FirVq2sRIkSVrNmTVu0aJGdOHHCTpw4YWPHjjWPx2PXX3+9FS9e/KI0/f9TGRkZtnHjRvN4PObxeGzy5MnZ5q9cudIqV65s1apVs4YNGzph4GIGt6yfm/3799uuXbucx7Nnz7ZBgwbZu+++61zT9ttvv1m9evVs7dq1F62OeemDDz6w8uXLW3x8vJmd7Irm8Xjso48+csr8+uuv9vbbb9vTTz/tdGV1Y5fWczFixAgrU6aMLViwwLZu3WrR0dFWokQJ27p1q5md3L833nij3XDDDRYdHe28J938/Zr18zJy5Ehr0KCBVatWzRo1amRLliwxs/+rf1pamh0+fNjat29v//rXv1y1XVnrcur7q0GDBlavXj0niJqdfF/GxMTYwIEDLSwszGnJL8juuusuGzlypO3fv9/Cw8Ptvvvus1KlSjmBzexkS0irVq0KzImjrPt13rx5znWyb7zxhjVs2ND8/f3t0UcftaVLl5qZ2WOPPWb//ve/8/S9uXnzZrv66qstKSnJduzYYeXKlbN77rnHmb9gwQLnms+s77mC7scff7QiRYrY888/b4888oiVLFnSfv31V0tNTbVPP/3U/v3vf9uMGTOcsJOYmGgNGzZ0fh/cIj093fbv328VK1a08ePH29VXX22xsbHO98aOHTvs5ptvtnnz5uVZHQhtcDz11FNWtmxZ++yzz+zPP/+0Fi1aWKVKlZwzJFu3brXY2FirUqWKdejQoUAcWJyLQYMGWdmyZa1hw4YWFBRkNWvWtDfeeMO5du3gwYO2YcMGa9++vUVGRhbYA0ez/zvQOnDggPXu3dumTZtmZif3YbNmzaxGjRoWFxfndEtYunSpvfrqq14trwXBe++9Zx6Px3r06JFtMA+zk2fLsl6rcjH3adaD3REjRliDBg2sdOnSFh0dbe+8845Xl5ATJ07Y/v37rVOnTtasWbMC/1nL9OKLL1r37t3N7GQXyYCAACdgJycn59jtzG1dZc5VUlKStW7d2j7++GMzO9mCExQU5Gxv1hacPXv2OO+PgvI9M2LECCtdurTNnDnTXnrpJevVq5cVLlzY3nnnHTM7eY3K66+/bv/617+sfv36rv3dmDBhgt14440WGxvr1H3Hjh1Wo0YNu+aaa+ztt9+2uXPnWtu2be22224zM7OyZcva008/nZ/VviBZv4PWrFljlStXts8//9zMTg7CVaJECevTp49T9tixY9ahQwdr166d6/ZbTk4ddOSaa66xyZMn29GjR+3YsWOWnJzsnDDJ1KxZM3vooYfypB6Z16xt3brVbrjhBvviiy+sQoUKds899zif859//tliY2Nt5cqVuVoHN/j777/tpZdesqJFi1pgYKDXSUoz8/rOS05Otg4dOrji5E5mvY4ePeo1fezYsVa0aFFr0aKF1/THH3/cIiMj87QHGqENlpGRYXv27LEbbrjB6bKzZMkSK1asmNOXPeuH56+//ipwBxan895771lYWJjFx8fbsWPH7MSJE/bvf//bGjRoYO+9956Zmc2ZM8eaNm1qN954o3PAUVAPIM1Odj2Lioqyli1b2po1a5zp6enp1rx5c6tevbrFxcXlOGqm22R9X57aUvbmm2+ax+Oxxx57zOn6aZZ93+XXD8OoUaOsTJky9r///c/mzJljN954ozVq1MhGjx5tJ06csLS0NHvppZesbdu2du2117r2YPd8ZL72999/v8XExNiaNWusZMmSXi2ir7/+uj311FPZfigLqh07dlhQUJD9/vvvtmjRIq8uZ0ePHrVRo0ZlC6kFZR/v27fPGjZsaG+88YYz7cSJE/bf//7XfHx8LD4+3jIyMmzu3Ln22GOPuarFNOtrPGbMGCtdurTdd9991rJlS6tatapzzcrBgwetc+fOds0111jlypWtRYsWdvToUUtPT7e6deva7Nmz82sT/rE33njDYmNjbejQoc60zZs32z333GMBAQHWr18/e+CBB6xly5YWGRlZ4L6Dnn76aStbtqwtX748x9/s5ORk++abb6xt27ZWu3btPHlfrl692tq3b2/79++348ePW7169czj8TihONOQIUPsuuuuK1DdT8/HzJkzzePxWPHixW3ixInO9MzX/NixYzZjxgxr0qSJRUVF5ft7LfN4Yv78+XbbbbdZly5dLC4uzg4fPmy7du2yPn36WJkyZeypp56y559/3u69914rWbKkbdiwIU/rRWiDmZ1sealbt67t3bvXPvnkE68Di2PHjtlbb73l9O3PVFC+uM9kwoQJ1rBhQzt27Jjz5XH8+HG78cYbndHPzMxWrFiRL60yeeHQoUN21VVXmcfjsQ8//NDMvAcTaN26tYWHh9uiRYvys5pnlfX9N2XKFOvXr5/ddddd9vrrrzsH/FOnTjWPx2OPP/64V3DLTxkZGZaQkGD169d3Log3O9nS8tBDD9l1113ndEGaOnWqjRgxwlUHu+fjdN8Rq1atslKlSpnH47GZM2c6048ePWrt27e3++6772JVMVfl1MU2NTXVunbtar169bLixYs7J8LMTg5MEh0d7dUttCDZtWuXBQQEOCe4MkebPXTokLVo0cLpSp71ekQ3nPDKWoc1a9bYyJEjnS6df/zxhz355JMWERFhzz77rFPujz/+cFpMzE5eSlChQgX7/fffL17Fc9Gff/5pt9xyiwUEBNidd97pNe+PP/6wN954wxo3bmw9evSwRx99tMB9B+3evdsaN25ss2bNMrOT148tXrzYYmNjbdSoUWZmFhcXZ7fffnuenpBdv369eTwee/vtt83M7Pfff7fKlStb06ZN7f3337dPPvnEHnjgAQsICCgQA/Scq1O/+/fu3Wvff/+9Pf/881ayZEkbO3as1/y///7bPvjgAxs5cqRr3mvLly+3YsWK2f33329RUVFWs2ZNGzlypB0+fNgSExPt2WeftauuusoaN25s3bt3z3aMnBcIbZehnA4sDhw4YJUrV3buzZb1zPeWLVusTZs29tlnn13MauapzC+UkSNHWs2aNZ3pmV0if/jhBytatGi2C+YvhaBqdvKi8mrVqlnt2rWznRnKyMiwjh07FojRIs1ODmhRunRp69+/vzVp0sTq1KljrVu3tiNHjpiZ2bRp08zHx8ceeOAB1wykkpyc7HTZMfu/A4WUlBSrVq1ajhfEu+Fg93xk/Z758MMPbdy4cfbVV1/Znj17zOzkNSQRERE2ZswYS0xMtFWrVlm7du2sTp06zo+1W0b1PBdZvxv+/vtvZ4RIs5PbWqRIEYuJiXGmJScnW/v27a1ly5YFYt+ebl907tzZbr75ZmfQhMxynTp1cu756BaDBg3yehwXF2dhYWFWsWJFr4ESdu3aZcOHD7dy5crZM8884/WczZs3W69evaxs2bKuHCjhdHLafytWrLDu3btbsWLFcrwO59T3ZUF4n2ZKSUmxpk2bWmxsrC1YsMC6dOliDRs2tLZt21rRokXt8ccft4yMDIuPj8/1E7Kn3ovt8ccft6ZNmzrd5n7//Xdr0qSJXXPNNVatWjVr3bq1667f+ieyfhdu3LjRli1bZjt37rS0tDRLTU21MWPGWEBAgI0bN84pN2bMGPvyyy+dx254r82YMcNGjBjhPH700UetXr169uSTTzpjH2Reg3ixeiYR2i4zWT9M27dvt0OHDtnhw4fN7OQbNCAgwG699VYzO/mhOXz4sHXo0KHAHFicr19++cX8/f2zDS7y7bffWvXq1QtMcDmdzB+P9evX25tvvmlvvvmmc0F2cnKyXX311XbttdfmeZN+Xlm5cqVVrFjR6+L4uXPnWsOGDe2mm25yrheaPHmyNW7cOF9CQOZnLuu6k5OTrX79+nb77bc78zI/X3feeaf17t37otczN516TUnp0qWtevXqFhYWZv369bNt27bZ/v37bfTo0VaqVCkLDg52hr4v6F2Qn3jiCatbt65VqlTJHnnkEWd679697ZprrrGWLVvanXfeaY0bN7batWvnezegc5G1bnv27PG6JmX69Ol23XXX2WOPPeYcwKSkpFizZs3s8ccfv+h1PZ1vvvnGOnbs6HVgvnr1arv33nvN39/fuS9npl27dtnIkSOtcOHCTmuN2cnLA2bMmOHcu7QgyLr/Tn2ffffdd9ajRw+rWbOmxcXFOdNPnDjh6vdkVjnVMyMjw8aPH28NGzY0X19fGzp0qHM/xAEDBmRrXczNbc08psr8Hpw3b55dffXVzqAnZicD4p9//mmJiYkF6obzZ5P1u3/YsGFWtWpVq1ChgtWpU8d69eplf/zxhyUlJdmzzz5rxYoVszvuuMNatWplV111Vb5/52fWfd26dbZgwQL773//64z0mWnYsGFWr149Gz58uNf18hfr2ILQdpl64oknnAushwwZYr/99ptlZGTY8OHDzePx2E033WRdu3a15s2bW61atQr8gVSm9957z8aMGWMzZ850zpL+73//M39/f+vXr599//339v3331uHDh2sadOmBeZH60w+/PBDCwsLs6ZNm1q7du2sWLFi9vrrr5vZyR+XKlWqWIMGDbyubysoPv30UytbtqzXELvHjx+3N9980+rUqeN19jKn+0nltVPv0XXgwAGnm+ZXX31lvr6+NmzYMK8zvddff709+uijF62OeWn16tXWoUMH5+apU6ZMsUaNGtkdd9zhDG6ze/duW7Zsmf38888Fsgty1n386quv2hVXXGGTJk2y0aNHW4kSJaxr165Od9033njD7r33XrvzzjttzJgxrukGdK4yL7QvVaqU3XLLLc410M8++6zVq1fPatSoYXfeeac1aNDAatSo4artSk1NdT77WUPYpk2b7O6777arrrrK6cKW6Y8//rBp06Zl+90rqC3AU6ZMsTvuuMPuvPNOe+mll5zpy5cvt9tvv91q1aplX3zxRX5U84Jl3b633nrLBg8ebIMGDbK5c+ea2cleRKcG7KZNm+bZKNBr1qyx66+/3mbNmuXVJf/WW2+1evXqueozkZeef/55Cw0NdYJybGysBQUFOSdYDx48aDNmzLBWrVpZ7969XXPy6oMPPrASJUpYuXLlzOPx2L/+9a9sl1Y88cQTVrlyZRs9evRFry+h7TKR9Ufm/ffft5CQEHv//fftwQcftBYtWlj79u2dg6gvvvjC/v3vf1u/fv3smWeeKXAHFqfz8MMPW2BgoNWrV89q1qxpZcuWdb7Y33//fYuIiLDw8HC7+uqrrUmTJq75EvknNm7caGXLlnWuT9ywYYN5PB4bNGiQsz8PHTpkpUuXtubNm7t68JGs7+HMfbJ+/XqrWrVqtq49iYmJVrx4ca+Ds1OXcTE99thjVrVqVbvqqqusfv36zhntmTNnWuHCha1p06bWuXNna9q0qesOdi/UjBkzrGvXrtatWzevg9433njDGjVqZL169bLvv/8+2/MK6uft22+/tRdeeMHef/99Z9p3333n9F443f283HwiLOu+ePnlly00NNSmTp1qs2fPttatW1uDBg2c75YlS5bY0KFD7Y477vC6Bspt2/fLL79Y6dKlrVWrVs60+Ph469evn1WrVi1bcMvktu04X0OHDrWwsDAbOHCg3X///VahQgWv0RKXL19uMTExFhIS4pxkKUgy7/vYv39/69u3rwUGBnoNsHL48GFbs2aNRUdH59mgI2Ynu9zed999VqJECevYsaPTvW7VqlXWsmVLr+s/L0WZvUa6du3qDDgyb948K1mypNOaffz4cefyhTPdcuNiydwXe/futV69etm0adNs9+7dNnbsWIuKirLY2FinW3+mp556Kl+uZyW0XWY+//xze/jhh+3NN990pr3//vvWqlUra9u2rf30009mlv3DU9B/sFauXGktW7a0VatWWUZGhm3ZssUGDx5shQoVsk8//dTMTp6R++6772z9+vUF8ox/Tj755BO78cYbzexkS0/58uW9buSZeQby8OHD2YZAdpNTD+Qzv2T379/vXKeQNQDs3r3b6tWrZ/Pnz7+o9Ty1fmZm7777rgUHB9v7779vU6ZMsb59+5qPj48zAMfGjRttwIABFhsba8OGDbtkTpI8/vjjFhISYlWqVMl2s9E333zTbrjhBuvYsaNt27YtfyqYi3766Sfn3oBTp041s/97D6xevdoCAwOtR48eeXrT1by0fPlyGzt2rL311lvOtD179th9991n11133WkP8t3wHj714PjYsWM2d+5cu+aaa6xt27bO9Pj4eOvfv7/VqFHDXnvttYtdzTw1Y8YMu/rqq23VqlVmdvJekP7+/lasWDGvboJLliyxESNGFLjf+4ULF1qlSpWc4fLfffdd8/f3d25pY2b20Ucf2W233Wbt2rXL1Z5Dpwtfq1atsscee8zKlStnDRs2tCeffNJq1Khh//nPf/7xOt3uxIkT1qJFC1u1apUtXrzYSpQo4XymUlNTberUqc49YTPld4hds2aNNW3a1KKjo71G8504caI1atTI+vbtmy245QdC22Vk9erVVrduXStdurTXj6/ZyeDWpk0ba9++vdfBb35/kHLDjBkzrEuXLta2bVuvlqR9+/ZZ//79LSoqynbu3JnteQX1jH9Wb731ljVv3ty+//57K1++vN1zzz3Odi1btszuv//+bPdMcbMXXnjBYmJirEuXLs5Q2zt27HCG4h41apTNnTvX2rRpY3Xr1s33g48FCxZYv379bNKkSc60EydO2PDhw61QoULOQdSp77X8rnduefHFF+3qq6+2Bx980Hbs2OE17+WXX7Z77733kvicmZl99tlnFhgYaH369HG6Q2Z+f65Zs8Y8Ho89+eST+VnFC5I1kI4fP97M/m+7kpKS7KqrrrJhw4blZxVPK+t7K+vZ/WPHjtmnn35qV199tUVHRztlNm7caD179rR///vfF72uuenU3+2JEyc6IyZ++umnVqpUKZs4caK9+OKLVqhQoRzvT1aQvoOmTZvm3DNrzpw5VrJkSSckHDp0yFavXm3p6en23Xff5eoJ2czXeeXKlc6tSrZu3eoMaJaWlmYHDx60fv362W233WYej8cKFy5sBw4cuCSOrcxOf5zUqVMnq1ixopUsWdKmT5/uTE9MTLQWLVp43bjdDd5++2279tprrXTp0tnC2cSJE61p06bWrVs3+/vvv/OphicR2i4zr7zyilWrVs2aN2+e7WD9ww8/tHr16uX6DSbz2+OPP26hoaEWGhrqjN6U+YX58ccfW0hISIG6qPx0cvoR+PLLL61mzZpWpkyZbCO5Pfjgg2fstuUGWX8QHnvsMStVqpTdcccd1qVLFytUqJD95z//saNHj9rOnTvtjjvusMjISKtXr5516tQp36/DXL16tdWrV89KlSplr7zyirM9GRkZduTIEWvTpo3df//9zj3ZLiVZ99vYsWOtXr16Nnjw4GwnRzLfs5dKcPvoo4+sSJEiNmjQIGcQnMxt/Omnnwrsfp43b56VKlXKunTpku2As0+fPtajRw9XH4SOHj3abrzxRmvYsKHTsyItLc0Jbllb3LZu3Zrj4EEFRdbP0oEDB8zs5Hfgb7/9Zrt377Y6deo4o/b98MMPVrZsWfN4PDZy5Mj8qO4/krl/3n77bevZs6e9//77Xq06ZifvszVgwACvg+3c+L7JXPecOXOsVKlS1q5dO6tcubI1btzYXnnllWz3mfzzzz9t2rRpF2VY+Isl6+u4efNm+/33353eBL/++qvVrVvXqlWrZmZmR44csb///tvat29vjRs3dt1JgbS0NHvvvfesatWq1qpVq2zhbPTo0da2bVuvwUfyA6HtMnHqxfKNGjWy3r17Z+uus2TJkkvmACqrSZMmWYUKFezee+/16oe8efNmq1Spkq1YsSIfa/fPZf6ArF271j7//HOve6wNGDDAPB6PTZ482bZt22Y7duywoUOHWpkyZWzTpk35VeXzsm3bNhs0aJB9++23zrSPPvrIypQp4wzjfezYMTt06JAlJia65ubvr7zyijNCZ2Zgyaxbt27drEePHvlZvTx1anC79tpr7eGHH852I+mCeGB8JnPmzLEiRYrY4MGDnRMHWbcxv9+TF2ru3Lnm6+tr999/v3PgcuzYMatbt6498MAD+Vw7b1nfe88++6yFhITYI488Yl27drVChQrZc889ZxkZGZaWlmafffaZVatWzaKiok67jIIia51feOEFe+ihh7xuZbBixQqrUqWK8xncvHmz3X777RYXF+e6g+icnG6ffPPNN+bv728ej8c5QWZ28r6Pbdu2tb59++bJ98zXX39tYWFhTjfM7du3W+HCha1OnTo2ceJEp8XtUpT19Xz44YftqquuslKlSlmjRo2ce7B99tlnVq5cOatYsaJFRUVZw4YN7dprr833E6qZdd+xY4f98ccf9vPPPzvT33vvPWvUqJHdeOONzrD+mdxwr1dC22Uk6xfepEmTrEmTJta7d+8czxwUxB+snGTdjmeeecbq1KljXbp0sa+++sq++eYba9++vV177bWXxPbOnTvXihcvbldeeaWVKVPG7rrrLmde3759rWrVqla8eHG7/vrrrWrVqgXmHkMffPCBeTweK1++vFPnzC/dd99913x8fHIc+TI/9+mpI7Zdd9111qNHD+feXampqda4ceNL/vqGUz9/V1xxRbYhlC9Fc+bMMX9/f+vbt2+BDWk5mTNnjvn5+VmdOnWse/fudtNNN1nt2rWdVkW3+fXXX+2JJ56wxYsXO9Oef/5583g8Nm7cOCe4vf/++9a9e/dL4nfA7OSgI2XLlrUZM2Z4XTO6efNmK1OmjA0fPtx+++03a9eund12223Z7ivmRllDwrRp02zkyJH23HPPOffenDp1qnk8Hvvvf/9rCxYssK+++spat27tNejIPw1up558mTx5sg0YMMDMzH777Te78sorrU+fPta9e3cLDw+3l156yemSeynJ+jn54IMPrFy5cjZ//nz78MMPbeTIkebn5+fc7uPgwYP2zDPP2IQJE2zGjBnOeyy/Bx2ZM2eOVa1a1SpXrmyBgYHWr18/pyfW7NmzrVGjRta5c+d87w55KkLbZebU0cAyR61z2xszN2Xd5nHjxllISIgVK1bMbrrpJuvfv79znZubf7DOJCMjw44dO2YdOnSwt956y3799Vd7//33rVSpUta1a1en3Lp16+yTTz6xVatWWUJCQj7W+MxOPXBau3at9ejRw3x9fZ0WxMx9dujQIbvqqquyXaPpBqd+1mrWrGlXXHGF3XTTTdatWzerUaNGji0xBUHW+p7tc5P1dcj6o32pmzlzpjVr1qzA7duz+eSTTywgIMDq1KljS5YscfZn5ns5vzz88MNe3W8XLlxoHo/HypYtm20Y++eff95pcUtPT/d6Txb04Pb5559bxYoVvXolZEpOTrann37agoKCrFKlSla/fv0C8R2UdZ88/PDDFhwcbA0bNrSqVataZGSk0w301VdftSpVqlhwcLA1aNDAOnbsmCeDjixdutQ2bNhgv/zyi/3000929OhRa9asmXOidP/+/RYcHGxVqlTxurXCpebLL7+0u+++22lZMzvZDXL69OlWokQJ+9///pfj8/L7N2Dp0qXm7+9vr776qn311Vf20UcfWXBwsN1yyy32559/Wnp6ur3zzjtWo0YN69atm6u+Ewhtl6FTz37/5z//cdWbMi9k3b4XX3zRIiMj7dFHH3XOrLj1TPGZZB0MYN++fXbPPfc4Z1VPnDhhn3/+uQUFBdltt92Wj7U8P1n30zfffOOEy++//95uvPFGK1WqlNc1Afv377cKFSrYjBkzLnpdz0XW7Zk6dapdc801dt1113mFzILcEvPaa685B8Rn+iE+dV5+/2ifj5xuNXG+CtL2notPPvnE6QJqlv/bt337dmvcuHG2z9KTTz5pHo8nxwPnF1980TweT7bbghR0r7zyitWrV8+5wbNZ9vfwr7/+akuXLi1woyT//fff1rt3b9u4caOlpKTYd999Z9dff71VqlTJ6cr2xx9/2NatW23Xrl150k3+q6++Mo/HY59++qlz3LB+/XqrWbOmrV271sxO3vuvffv2dvfdd2frDn6p+PHHH61KlSpWokQJe+SRR7zmJScnW48ePZxuqW67RvSxxx5zRtXOtGHDBgsKCrKBAwea2cn3zAcf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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "plt.figure(figsize = (10,8))\n", "sns.countplot(data = df, x = 'category', hue = 'is_fraud')\n", "plt.legend(title = 'is_fraud')\n", "plt.title(\"Category distribution on Fraud\")\n", "plt.xticks(rotation = 45)" ] }, { "cell_type": "code", "execution_count": 32, "id": "93976e0e-0df6-4e23-b45c-75d797ca2cbc", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0.5, 1.0, 'Time of Day on Fraud')" ] }, "execution_count": 32, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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O3YsevToId0l6OrqikGDBiE4OBgZGRnIyMhAcHAwhg4dChcXFwCAv78/3NzcEBgYiOzsbOzcuRPTpk1DcHCwFIQCAgKgVqsRFBSE3NxcJCUlITo6mncEEhERkaRJlwIdHR2xf//+BhO29+/fL7uz7m7++usvBAYGorCwEBqNBk899RSSk5Ph5+cHAJg+fToqKysREhKCkpIS9OnTBykpKTAzM5O2sXTpUujr62PUqFGorKyEr68v4uPjoaenJ9UkJCQgNDRUuntw+PDhiIuLk5br6elh27ZtCAkJgZeXF4yMjBAQEIDFixdLNRqNBqmpqZg8eTI8PDxgaWmJ8PBw2WU+IiIiat1UogmPDl+wYAEWLVqERYsWoX///gCAnTt3Yvr06YiIiMCMGTMU7+jjoqysDBqNBqWlpbwsSLfV+/31uu6CIrIWjdN1F1oEnu/Whee75brXf7+bNGI1ffp0XLp0CSEhIdKco7Zt2+KDDz5gqCIiIqJWq0nBSqVSYcGCBfj3v/+NvLw8GBkZ4cknn5Q9PJOIiIiotWlSsKpnamqKZ599Vqm+EBEREbVoTborkIiIiIgaYrAiIiIiUgiDFREREZFCGKyIiIiIFMJgRURERKQQBisiIiIihTBYERERESmEwYqIiIhIIQxWRERERAphsCIiIiJSCIMVERERkUIYrIiIiIgUwmBFREREpBAGKyIiIiKFMFgRERERKYTBioiIiEghDFZERERECmGwIiIiIlIIgxURERGRQhisiIiIiBTCYEVERESkEAYrIiIiIoUwWBEREREphMGKiIiISCEMVkREREQK0dd1B+juer+/XtddUETWonG67gIREdFDxRErIiIiIoUwWBEREREphMGKiIiISCEMVkREREQKYbAiIiIiUgiDFREREZFCGKyIiIiIFMJgRURERKQQBisiIiIihTBYERERESmEwYqIiIhIIQxWRERERAphsCIiIiJSCIMVERERkUIYrIiIiIgUwmBFREREpBAGKyIiIiKFMFgRERERKUSnwWr+/Pl49tlnYWZmBltbW7z66qvIz8+X1QghEBkZCa1WCyMjI/j4+ODo0aOymqqqKkyZMgU2NjYwMTHB8OHDce7cOVlNSUkJAgMDodFooNFoEBgYiMuXL8tqCgoKMGzYMJiYmMDGxgahoaGorq6W1Rw5cgTe3t4wMjKCg4MDoqKiIIRQ7qAQERFRi6XTYJWWlobJkycjIyMDqampuH79Ovz9/VFRUSHVLFy4EDExMYiLi0NmZibs7e3h5+eHK1euSDVhYWFISkpCYmIi9u3bh/LycgwdOhS1tbVSTUBAAHJycpCcnIzk5GTk5OQgMDBQWl5bW4shQ4agoqIC+/btQ2JiIjZv3oyIiAippqysDH5+ftBqtcjMzMSyZcuwePFixMTEPOQjRURERC2Bvi53npycLHu/du1a2NraIisrCy+++CKEEIiNjcWsWbMwYsQIAMC6detgZ2eHTZs2YdKkSSgtLcXq1auxYcMGDBgwAACwceNGODo6YseOHRg4cCDy8vKQnJyMjIwM9OnTBwCwatUqeHp6Ij8/Hy4uLkhJScGxY8dw9uxZaLVaAMCSJUsQFBSEefPmwdzcHAkJCbh27Rri4+OhVqvh7u6O48ePIyYmBuHh4VCpVI/w6BEREVFz06zmWJWWlgIArKysAACnT59GUVER/P39pRq1Wg1vb2+kp6cDALKyslBTUyOr0Wq1cHd3l2oOHDgAjUYjhSoA6Nu3LzQajazG3d1dClUAMHDgQFRVVSErK0uq8fb2hlqtltWcP38eZ86cue1nqqqqQllZmexFREREj6dmE6yEEAgPD8fzzz8Pd3d3AEBRUREAwM7OTlZrZ2cnLSsqKoKhoSEsLS0brbG1tW2wT1tbW1nNrfuxtLSEoaFhozX17+trbjV//nxpXpdGo4Gjo+NdjgQRERG1VM0mWL377rv49ddf8eWXXzZYduslNiHEXS+73Vpzu3olauonrt+pPzNmzEBpaan0Onv2bKP9JiIioparWQSrKVOm4H//+x92796NDh06SO329vYAGo4GFRcXSyNF9vb2qK6uRklJSaM1f/31V4P9XrhwQVZz635KSkpQU1PTaE1xcTGAhqNq9dRqNczNzWUvIiIiejzpNFgJIfDuu+9iy5Yt2LVrF5ydnWXLnZ2dYW9vj9TUVKmturoaaWlp6NevHwCgd+/eMDAwkNUUFhYiNzdXqvH09ERpaSkOHTok1Rw8eBClpaWymtzcXBQWFko1KSkpUKvV6N27t1Szd+9e2SMYUlJSoNVq4eTkpNBRISIiopZKp8Fq8uTJ2LhxIzZt2gQzMzMUFRWhqKgIlZWVAG5cXgsLC0N0dDSSkpKQm5uLoKAgGBsbIyAgAACg0WgwYcIEREREYOfOncjOzsbYsWPRo0cP6S5BV1dXDBo0CMHBwcjIyEBGRgaCg4MxdOhQuLi4AAD8/f3h5uaGwMBAZGdnY+fOnZg2bRqCg4OlUaaAgACo1WoEBQUhNzcXSUlJiI6O5h2BREREBEDHj1tYsWIFAMDHx0fWvnbtWgQFBQEApk+fjsrKSoSEhKCkpAR9+vRBSkoKzMzMpPqlS5dCX18fo0aNQmVlJXx9fREfHw89PT2pJiEhAaGhodLdg8OHD0dcXJy0XE9PD9u2bUNISAi8vLxgZGSEgIAALF68WKrRaDRITU3F5MmT4eHhAUtLS4SHhyM8PFzpQ0NEREQtkE6D1b08sVylUiEyMhKRkZF3rGnbti2WLVuGZcuW3bHGysoKGzdubHRfTzzxBL7//vtGa3r06IG9e/c2WkNEREStU7OYvE5ERET0OGCwIiIiIlIIgxURERGRQhisiIiIiBTCYEVERESkEAYrIiIiIoUwWBEREREphMGKiIiISCEMVkREREQKYbAiIiIiUgiDFREREZFCGKyIiIiIFMJgRURERKQQBisiIiIihTBYERERESmEwYqIiIhIIQxWRERERAphsCIiIiJSCIMVERERkUIYrIiIiIgUwmBFREREpBAGKyIiIiKFMFgRERERKYTBioiIiEghDFZERERECmGwIiIiIlIIgxURERGRQhisiIiIiBTCYEVERESkEAYrIiIiIoUwWBEREREphMGKiIiISCEMVkREREQKYbAiIiIiUgiDFREREZFCGKyIiIiIFMJgRURERKQQBisiIiIihTBYERERESmEwYqIiIhIIQxWRERERAphsCIiIiJSCIMVERERkUIYrIiIiIgUwmBFREREpBAGKyIiIiKF6DRY7d27F8OGDYNWq4VKpcK3334rWy6EQGRkJLRaLYyMjODj44OjR4/KaqqqqjBlyhTY2NjAxMQEw4cPx7lz52Q1JSUlCAwMhEajgUajQWBgIC5fviyrKSgowLBhw2BiYgIbGxuEhoaiurpaVnPkyBF4e3vDyMgIDg4OiIqKghBCseNBRERELZtOg1VFRQV69uyJuLi42y5fuHAhYmJiEBcXh8zMTNjb28PPzw9XrlyRasLCwpCUlITExETs27cP5eXlGDp0KGpra6WagIAA5OTkIDk5GcnJycjJyUFgYKC0vLa2FkOGDEFFRQX27duHxMREbN68GREREVJNWVkZ/Pz8oNVqkZmZiWXLlmHx4sWIiYl5CEeGiIiIWiJ9Xe588ODBGDx48G2XCSEQGxuLWbNmYcSIEQCAdevWwc7ODps2bcKkSZNQWlqK1atXY8OGDRgwYAAAYOPGjXB0dMSOHTswcOBA5OXlITk5GRkZGejTpw8AYNWqVfD09ER+fj5cXFyQkpKCY8eO4ezZs9BqtQCAJUuWICgoCPPmzYO5uTkSEhJw7do1xMfHQ61Ww93dHcePH0dMTAzCw8OhUqkewREjIiKi5qzZzrE6ffo0ioqK4O/vL7Wp1Wp4e3sjPT0dAJCVlYWamhpZjVarhbu7u1Rz4MABaDQaKVQBQN++faHRaGQ17u7uUqgCgIEDB6KqqgpZWVlSjbe3N9Rqtazm/PnzOHPmzB0/R1VVFcrKymQvIiIiejw122BVVFQEALCzs5O129nZScuKiopgaGgIS0vLRmtsbW0bbN/W1lZWc+t+LC0tYWho2GhN/fv6mtuZP3++NLdLo9HA0dGx8Q9ORERELVazDVb1br3EJoS462W3W2tuV69ETf3E9cb6M2PGDJSWlkqvs2fPNtp3IiIiarmabbCyt7cH0HA0qLi4WBopsre3R3V1NUpKShqt+euvvxps/8KFC7KaW/dTUlKCmpqaRmuKi4sBNBxVu5larYa5ubnsRURERI+nZhusnJ2dYW9vj9TUVKmturoaaWlp6NevHwCgd+/eMDAwkNUUFhYiNzdXqvH09ERpaSkOHTok1Rw8eBClpaWymtzcXBQWFko1KSkpUKvV6N27t1Szd+9e2SMYUlJSoNVq4eTkpPwBICIiohZHp8GqvLwcOTk5yMnJAXBjwnpOTg4KCgqgUqkQFhaG6OhoJCUlITc3F0FBQTA2NkZAQAAAQKPRYMKECYiIiMDOnTuRnZ2NsWPHokePHtJdgq6urhg0aBCCg4ORkZGBjIwMBAcHY+jQoXBxcQEA+Pv7w83NDYGBgcjOzsbOnTsxbdo0BAcHSyNMAQEBUKvVCAoKQm5uLpKSkhAdHc07AomIiEii08ctHD58GC+99JL0Pjw8HAAwfvx4xMfHY/r06aisrERISAhKSkrQp08fpKSkwMzMTFpn6dKl0NfXx6hRo1BZWQlfX1/Ex8dDT09PqklISEBoaKh09+Dw4cNlz87S09PDtm3bEBISAi8vLxgZGSEgIACLFy+WajQaDVJTUzF58mR4eHjA0tIS4eHhUp+JiIiIVIKPDn+kysrKoNFoUFpaes/zrXq/v/4h9+rRyFo0TtddaBF4vlsXnu/Whee75brXf7+b7RwrIiIiopaGwYqIiIhIIQxWRERERAphsCIiIiJSCIMVERERkUIYrIiIiIgUwmBFREREpBAGKyIiIiKFMFgRERERKYTBioiIiEghDFZERERECmGwIiIiIlIIgxURERGRQhisiIiIiBTCYEVERESkEAYrIiIiIoUwWBEREREphMGKiIiISCEMVkREREQKYbAiIiIiUgiDFREREZFCGKyIiIiIFMJgRURERKQQBisiIiIihTBYERERESmEwYqIiIhIIQxWRERERAphsCIiIiJSCIMVERERkUIYrIiIiIgUwmBFREREpBAGKyIiIiKFMFgRERERKYTBioiIiEghDFZERERECmGwIiIiIlIIgxURERGRQhisiIiIiBTCYEVERESkEAYrIiIiIoUwWBEREREphMGKiIiISCEMVkREREQKYbAiIiIiUgiDFREREZFCGKyIiIiIFKKv6w60RMuXL8eiRYtQWFiI7t27IzY2Fi+88IKuu0VERPRIFET10HUXHtgTs488lO1yxOo+ffXVVwgLC8OsWbOQnZ2NF154AYMHD0ZBQYGuu0ZEREQ6xmB1n2JiYjBhwgS89dZbcHV1RWxsLBwdHbFixQpdd42IiIh0jMHqPlRXVyMrKwv+/v6ydn9/f6Snp+uoV0RERNRccI7Vffj7779RW1sLOzs7WbudnR2Kiopuu05VVRWqqqqk96WlpQCAsrKye95vbVVlE3rb/Byd6abrLjwwxw8zHvo+eL6bD57ve8fzfW8el/N9xaBW1114YPfz7/DN9UKIRusYrJpApVLJ3gshGrTVmz9/PubMmdOg3dHR8aH0rTlz13UHlDBfo+setBg8360Lz3fr0prP95UrV6DR3HldBqv7YGNjAz09vQajU8XFxQ1GserNmDED4eHh0vu6ujpcunQJ1tbWdwxjj6OysjI4Ojri7NmzMDc313V36CHj+W5deL5bl9Z6voUQuHLlCrRabaN1DFb3wdDQEL1790Zqair+8Y9/SO2pqal45ZVXbruOWq2GWq2WtVlYWDzMbjZr5ubmreoXsbXj+W5deL5bl9Z4vhsbqarHYHWf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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sns.countplot(data = df, x = 'time_of_day', hue = 'is_fraud', order = ['morning', 'afternoon', 'evening', 'night'])\n", "plt.legend(title = 'is_fraud')\n", "plt.title('Time of Day on Fraud')" ] }, { "cell_type": "code", "execution_count": 33, "id": "80aa6a51-b42d-41a6-a869-a300d91da65a", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13]),\n", " [Text(0, 0, 'gas_transport'),\n", " Text(1, 0, 'grocery_pos'),\n", " Text(2, 0, 'home'),\n", " Text(3, 0, 'shopping_pos'),\n", " Text(4, 0, 'kids_pets'),\n", " Text(5, 0, 'shopping_net'),\n", " Text(6, 0, 'entertainment'),\n", " Text(7, 0, 'food_dining'),\n", " Text(8, 0, 'personal_care'),\n", " Text(9, 0, 'health_fitness'),\n", " Text(10, 0, 'misc_pos'),\n", " Text(11, 0, 'misc_net'),\n", " Text(12, 0, 'grocery_net'),\n", " Text(13, 0, 'travel')])" ] }, "execution_count": 33, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAHzCAYAAAD8VWNsAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAACa2UlEQVR4nOzdd3xO5/8/8PctJGJkEFnEqBEhIREkEXskYletImgJH1Sqsam9OozWLGpVbJraEXuUGCFIKao0VIISiZlE8vr9kd99vveRWHGy2tfz8ciD+5zrPue67/uM97mmDgCEiIiIiDSTL6czQERERPRvwwCLiIiISGMMsIiIiIg0xgCLiIiISGMMsIiIiIg0xgCLiIiISGMMsIiIiIg0xgCLiIiISGP5czoD/zWpqaly+/ZtKVq0qOh0upzODhEREb0FAPLo0SOxt7eXfPneXD7FACub3b59WxwcHHI6G0RERJQJN2/elFKlSr0xHQOsbFa0aFERSfuBzMzMcjg3RERE9DYSEhLEwcFBuY+/CQOsbKavFjQzM2OARURElMe8bfMeNnInIiIi0hgDLCIiIiKNMcAiIiIi0hgDLCIiIiKNMcAiIiIi0hgDLCIiIiKNMcAiIiIi0hgDLCIiIiKNMcAiIiIi0hgDLCIiIiKNMcAiIiIi0hgDLCIiIiKNMcAiIiIi0hgDLCIiIiKN5c/pDPzX3VsYnK37K9G/e7buj4iI6L+IJVhEREREGmOARURERKQxBlhEREREGmOARURERKQxBlhEREREGmOARURERKQxBlhEREREGmOARURERKQxBlhEREREGmOARURERKQxBlhEREREGmOARURERKQxBlhEREREGmOARURERKQxBlhEREREGmOARURERKQxBlhEREREGmOARURERKQxBlhEREREGsvRAOvw4cPSunVrsbe3F51OJ7/88otqvU6ny/Dv22+/VdI0bNgw3fouXbqothMXFyf+/v5ibm4u5ubm4u/vLw8fPlSliY6OltatW0vhwoXFyspKAgMDJSkpSZXmwoUL0qBBAzE1NZWSJUvKpEmTBICm3wkRERHlfflzcudPnjyR6tWryyeffCIfffRRuvUxMTGq17t27ZLevXunSxsQECCTJk1SXpuamqrWd+3aVW7duiWhoaEiItK3b1/x9/eXbdu2iYhISkqKtGzZUkqUKCFH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ARYRERGRxhhgEREREWmMARYRERGRxhhgEREREWmMARYRERGRxhhgEREREWmMARYRERGRxhhgEREREWmMARYRERGRxhhgEREREWmMARYRERGRxhhgEREREWksf05ngIjyNr8tPbN9n7varsz2fRIRvQuWYBERERFpjAEWERERkcYYYBERERFpjAEWERERkcYYYBERERFpjAEWERERkcYYYBERERFpjAEWERERkcYYYBERERFpjCO5E9G/Ssufv8vW/e1oPzhb90dEeQNLsIiIiIg0xgCLiIiISGMMsIiIiIg0xgCLiIiISGMMsIiIiIg0xl6ERERZpNWm1dm6v+0dumXr/ojo1ViCRURERKQxlmAREf0HtN20O9v3uaWDb7bvkyi3YAkWERERkcYYYBERERFpjAEWERERkcYYYBERERFpLEcDrMOHD0vr1q3F3t5edDqd/PLLL8q65ORkGTFihLi4uEjhwoXF3t5eevToIbdv31Zto2HDhqLT6VR/Xbp0UaWJi4sTf39/MTc3F3Nzc/H395eHDx+q0kRHR0vr1q2lcOHCYmVlJYGBgZKUlKRKc+HCBWnQoIGYmppKyZIlZdKkSQJA0++EiIiI8r4cDbCePHki1atXl3nz5qVb9/TpUzlz5oyMHTtWzpw5Iz///LNcuXJF2rRpky5tQECAxMTEKH+LFi1Sre/atatERkZKaGiohIaGSmRkpPj7+yvrU1JSpGXLlvLkyRM5evSorFu3TjZv3ixDhgxR0iQkJEizZs3E3t5eTp06JXPnzpUZM2bIrFmzNPxGiIiI6N8gR4dp8PPzEz8/vwzXmZuby549e1TL5s6dK7Vr15bo6GgpXbq0srxQoUJia2ub4XYuXbokoaGhEh4eLh4eHiIismTJEvHy8pLLly+Lo6OjhIWFycWLF+XmzZtib28vIiIzZ86UXr16ydSpU8XMzExWr14tz58/lxUrVoiJiYk4OzvLlStXZNasWRIUFCQ6nU6Lr4SIiIj+BfJUG6z4+HjR6XRiYWGhWr569WqxsrKSqlWrytChQ+XRo0fKuuPHj4u5ubkSXImIeHp6irm5uRw7dkxJ4+zsrARXIiK+vr6SmJgoERERSpoGDRqIiYmJKs3t27flxo0br8xzYmKiJCQkqP6IiIjo3y3PDDT6/PlzGTlypHTt2lXMzMyU5d26dZNy5cqJra2t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2LDha0dC1+l0MmHCBJkwYcIr0xQsWFDmzp2rDAiakWLFiklwcPBr81K6dGnZvn37a9O4uLjI4cOHX5uGiIiIKFMB1oEDB7TOBxEREdG/RqYCLL179+7J5cuXRafTSaVKlaREiRJa5YuIiIgoz8pUI/cnT57Ip59+KnZ2dlK/fn2pV6+e2NvbS+/eveXp06da55GIiIgoT8lUgBUUFCSHDh2Sbdu2ycOHD+Xhw4eyZcsWOXToECc+JiIiov+8TFURbt68WTZt2iQNGzZUlrVo0UJMTU2lU6dOsnDhQq3yR0RERJTnZKoE6+nTpxmOXm5tbc0qQiIiIvrPy1SA5eXlJePHj5fnz58ry549eyYTJ04ULy8vzTJHRERElBdlqorwu+++Ez8/PylVqpRUr15ddDqdREZGiomJiYSFhWmdRyIiIqI8JVMBlouLi1y9elWCg4Pl999/FwDSpUsX6datm5iammqdRyIiIqI8JVMB1vTp08XGxkYCAgJUy5ctWyb37t2TESNGaJI5IiIiorwoUwHWokWLZM2aNemWV61aVbp06cIAi4iIKJPCV9zN1v159rLO1v39V2SqkXtsbKzY2dmlW16iRAmJiYl570wRERER5WWZCrAcHBzk119/Tbf8119/FXt7+/fOFBEREVFelqkqwj59+sjgwYMlOTlZGjduLCIi+/btk+HDh3MkdyIiIvrPy1SANXz4cHnw4IEMGDBAkpKSRESkYMGCMmLECBk1apSmGSQiIiLKazIVYOl0Ovn6669l7NixcunSJTE1NZWKFSuKiYmJ1vkjIiIiynMyFWDpFSlSRGrVqqVVXoiIiIj+FTLVyJ2IiIiIXo0BFhEREZHGGGARERERaYwBFhEREZHGGGARERERaYwBFhEREZHGGGARERERaYwBFhEREZHGGGARERERaYwBFhEREZHGGGARERERaYwBFhEREZHGGGARERERaYwBFhEREZHGGGARERERaYwBFhEREZHGGGARERERaYwBFhEREZHGGGARERERaSzXB1hly5YVnU6X7m/gwIEiItKrV6906zw9PVXbSExMlEGDBomVlZUULlxY2rRpI7du3VKliYuLE39/fzE3Nxdzc3Px9/eXhw8fqtJER0dL69atpXDhwmJlZSWBgYGSlJSUpZ+fiIiI8p5cH2CdOnVKYmJilL89e/aIiEjHjh2V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7t69q5RI2drayp07d9Jt6969e6o0L5dUxcXFSXJycrqSLUMmJiZiZmam+iMiIqJ/t1wdYAGQzz77TH7++WfZv3+/lCtX7o3vuX//vty8eVPs7OxERMTd3V0KFCgge/bsUdLExMRIVFSU1KlTR0REvLy8JD4+Xk6ePKmkOXHihMTHx6vSREVFSUxMjJImLCxMTExMxN3dXZPPS0RERP8OubqKcODAgbJmzRrZsmWLFC1aVClBMjc3F1NTU3n8+LFMmDBBPvroI7Gzs5MbN27I6NGjxcrKSj788EMlbe/evWXIkCFSvHhxKVasmAwdOlRcXFyUXoVOTk7SvHlzCQgIkEWLFomISN++faVVq1bi6OgoIiI+Pj5SpUoV8ff3l2+//VYePHggQ4cOlYCAAJZKERERkUquLsFauHChxMfHS8OGDcXOzk75W79+vYiIGBkZyYULF6Rt27ZSqVIl6dmzp1SqVEmOHz8uRYsWVbYze/ZsadeunXTq1Em8vb2lUKFCsm3bNjEyMlLSrF69WlxcXMTHx0d8fHykWrVqsmrVKmW9kZGR7NixQwoWLCje3t7SqVMnadeuncyYMSP7vhAiIiLKE3J1CRaA1643NTWV3bt3v3E7BQsWlLlz58rcuXNfmaZYsWISHBz82u2ULl1atm/f/sb9ERER0X9bri7BIiIiIsqLGGARERERaYwBFhEREZHGGGARERERaYwBFhEREZHGGGARERERaYwBFhEREZHGGGARERERaYwBFhEREZHGGGARERERaYwBFhEREZHGGGARERERaYwBFhEREZHGGGARERERaYwBFhEREZHGGGARERERaYwBFhEREZHGGGARERERaYwBFhEREZHGGGARERERaYwBFhEREZHGGGARERERaYwBFhEREZHGGGARERERaYwBFhEREZHGGGARERERaYwBFhEREZHGGGARERERaYwBFhEREZHGGGARERERaYwBFhEREZHGGGARERERaYwBFhEREZHGGGARERERaYwBFhEREZHGGGARERERaYwBViYsWLBAypUrJwULFhR3d3c5cuRITmeJiIiIchEGWO9o/fr1MnjwYBkzZoycPXtW6tWrJ35+fhIdHZ3TWSMiIqJcggHWO5o1a5b07t1b+vTpI05OTvLdd9+Jg4ODLFy4MKezRkRERLlE/pzOQF6SlJQkERERMnLk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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "sns.countplot(data = df, x='category', order=df['category'].value_counts().index)\n", "plt.xticks(rotation = 45)" ] }, { "cell_type": "markdown", "id": "d0d46195-3f42-4b9a-a4bd-2b138ba1e4af", "metadata": {}, "source": [ "#### One_hot Encoding" ] }, { "cell_type": "code", "execution_count": 34, "id": "3de134b9-8e32-4e74-ad07-a7729cdee178", "metadata": {}, "outputs": [], "source": [ "# Column to exclude from encoding\n", "exclude_col = 'is_fraud'\n", "\n", "# Extract the column to exclude\n", "excluded_col_df = df[[exclude_col]]" ] }, { "cell_type": "code", "execution_count": 35, "id": "7bd02794-cfd5-4a3a-af1d-b6f012e6d562", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
is_fraud
00
10
20
30
40
......
18523890
18523900
18523910
18523920
18523930
\n", "

1852394 rows × 1 columns

\n", "
" ], "text/plain": [ " is_fraud\n", "0 0\n", "1 0\n", "2 0\n", "3 0\n", "4 0\n", "... ...\n", "1852389 0\n", "1852390 0\n", "1852391 0\n", "1852392 0\n", "1852393 0\n", "\n", "[1852394 rows x 1 columns]" ] }, "execution_count": 35, "metadata": {}, "output_type": "execute_result" } ], "source": [ "excluded_col_df" ] }, { "cell_type": "code", "execution_count": 36, "id": "5c75a960-e8b1-443c-a51b-b3494f8cf151", "metadata": {}, "outputs": [], "source": [ "encoded_df = pd.get_dummies(df.drop(columns=[exclude_col]))" ] }, { "cell_type": "code", "execution_count": 37, "id": "58a883b5-5be0-4e59-81ae-543ac2606e37", "metadata": {}, "outputs": [], "source": [ "encoded_df = encoded_df.astype(int)" ] }, { "cell_type": "code", "execution_count": 38, "id": "c4672c5d-10c3-45a8-b125-5a90a5db0474", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
amtcity_popcategory_entertainmentcategory_food_diningcategory_gas_transportcategory_grocery_netcategory_grocery_poscategory_health_fitnesscategory_homecategory_kids_pets...category_travelgender_Fgender_Mtime_of_day_afternoontime_of_day_eveningtime_of_day_morningtime_of_day_nightage_Middle_ageage_Oldage_Young
04349500000000...0100001100
110714900001000...0100001100
2220415410000000...0010001010
345193900100000...0010001100
4419900000000...0010001100
\n", "

5 rows × 25 columns

\n", "
" ], "text/plain": [ " amt city_pop category_entertainment category_food_dining \\\n", "0 4 3495 0 0 \n", "1 107 149 0 0 \n", "2 220 4154 1 0 \n", "3 45 1939 0 0 \n", "4 41 99 0 0 \n", "\n", " category_gas_transport category_grocery_net category_grocery_pos \\\n", "0 0 0 0 \n", "1 0 0 1 \n", "2 0 0 0 \n", "3 1 0 0 \n", "4 0 0 0 \n", "\n", " category_health_fitness category_home category_kids_pets ... \\\n", "0 0 0 0 ... \n", "1 0 0 0 ... \n", "2 0 0 0 ... \n", "3 0 0 0 ... \n", "4 0 0 0 ... \n", "\n", " category_travel gender_F gender_M time_of_day_afternoon \\\n", "0 0 1 0 0 \n", "1 0 1 0 0 \n", "2 0 0 1 0 \n", "3 0 0 1 0 \n", "4 0 0 1 0 \n", "\n", " time_of_day_evening time_of_day_morning time_of_day_night \\\n", "0 0 0 1 \n", "1 0 0 1 \n", "2 0 0 1 \n", "3 0 0 1 \n", "4 0 0 1 \n", "\n", " age_Middle_age age_Old age_Young \n", "0 1 0 0 \n", "1 1 0 0 \n", "2 0 1 0 \n", "3 1 0 0 \n", "4 1 0 0 \n", "\n", "[5 rows x 25 columns]" ] }, "execution_count": 38, "metadata": {}, "output_type": "execute_result" } ], "source": [ "encoded_df.head()" ] }, { "cell_type": "code", "execution_count": 39, "id": "b50d4c94-1257-4e4e-b7a3-8b480bf73528", "metadata": {}, "outputs": [], "source": [ "encoded_df1 = encoded_df.iloc[:, :2]\n", "encoded_df2 = encoded_df.iloc[:, 2:]" ] }, { "cell_type": "code", "execution_count": 40, "id": "b47b8250-8ffa-49dc-a903-463779aae49b", "metadata": {}, "outputs": [], "source": [ "# Concatenate the excluded column back\n", "df = pd.concat([encoded_df1, excluded_col_df, encoded_df2], axis=1)" ] }, { "cell_type": "code", "execution_count": 41, "id": "ba65d5d6-68e3-4d26-a14c-c826364775e3", "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
amtcity_popis_fraudcategory_entertainmentcategory_food_diningcategory_gas_transportcategory_grocery_netcategory_grocery_poscategory_health_fitnesscategory_home...category_travelgender_Fgender_Mtime_of_day_afternoontime_of_day_eveningtime_of_day_morningtime_of_day_nightage_Middle_ageage_Oldage_Young
04349500000000...0100001100
110714900000100...0100001100
2220415401000000...0010001010
345193900010000...0010001100
4419900000000...0010001100
\n", "

5 rows × 26 columns

\n", "
" ], "text/plain": [ " amt city_pop is_fraud category_entertainment category_food_dining \\\n", "0 4 3495 0 0 0 \n", "1 107 149 0 0 0 \n", "2 220 4154 0 1 0 \n", "3 45 1939 0 0 0 \n", "4 41 99 0 0 0 \n", "\n", " category_gas_transport category_grocery_net category_grocery_pos \\\n", "0 0 0 0 \n", "1 0 0 1 \n", "2 0 0 0 \n", "3 1 0 0 \n", "4 0 0 0 \n", "\n", " category_health_fitness category_home ... category_travel gender_F \\\n", "0 0 0 ... 0 1 \n", "1 0 0 ... 0 1 \n", "2 0 0 ... 0 0 \n", "3 0 0 ... 0 0 \n", "4 0 0 ... 0 0 \n", "\n", " gender_M time_of_day_afternoon time_of_day_evening time_of_day_morning \\\n", "0 0 0 0 0 \n", "1 0 0 0 0 \n", "2 1 0 0 0 \n", "3 1 0 0 0 \n", "4 1 0 0 0 \n", "\n", " time_of_day_night age_Middle_age age_Old age_Young \n", "0 1 1 0 0 \n", "1 1 1 0 0 \n", "2 1 0 1 0 \n", "3 1 1 0 0 \n", "4 1 1 0 0 \n", "\n", "[5 rows x 26 columns]" ] }, "execution_count": 41, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "code", "execution_count": 42, "id": "ad168001-0d04-4ba0-9ad5-ad20945d85a3", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "is_fraud\n", "0 1842743\n", "1 9651\n", "Name: count, dtype: int64" ] }, "execution_count": 42, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df['is_fraud'].value_counts()" ] }, { "cell_type": "code", "execution_count": 43, "id": "df2bc28e-f460-4d62-a689-ea7a35cbfe6d", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(1852394, 26)" ] }, "execution_count": 43, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.shape" ] }, { "cell_type": "code", "execution_count": 44, "id": "49c75847-6a95-422a-bcb8-73d16dac71b1", "metadata": {}, "outputs": [], "source": [ "X = df.drop(['is_fraud'] , axis = 1)\n", "y = df['is_fraud']" ] }, { "cell_type": "code", "execution_count": 45, "id": "1b5d87a1-9f24-4cad-8727-2f74ae86216a", "metadata": {}, "outputs": [], "source": [ "X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)" ] }, { "cell_type": "markdown", "id": "09e77f9e-c54c-4a0c-b1ea-29325349b691", "metadata": {}, "source": [ "### Modeling" ] }, { "cell_type": "markdown", "id": "a921a972-1199-4cee-86d9-14faef2a1119", "metadata": {}, "source": [ "#### Logistic Regression" ] }, { "cell_type": "code", "execution_count": 47, "id": "9d986f32-1251-4ff4-8455-343ff8ab1690", "metadata": {}, "outputs": [], "source": [ "lr_model = LogisticRegression()" ] }, { "cell_type": "code", "execution_count": 48, "id": "00374309-3f79-403f-919f-7a4e4a7938e0", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: total: 44.1 s\n", "Wall time: 18.4 s\n" ] }, { "data": { "text/html": [ "
LogisticRegression()
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "LogisticRegression()" ] }, "execution_count": 48, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%time\n", "lr_model.fit(X_train, y_train)" ] }, { "cell_type": "code", "execution_count": 49, "id": "6a20b332-4da9-42bf-a1bf-1da13730682d", "metadata": {}, "outputs": [], "source": [ "y_lr_pred = lr_model.predict(X_test)" ] }, { "cell_type": "code", "execution_count": 50, "id": "70af59c3-fb69-4322-95be-f1f8c4006aed", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.9942866808584915" ] }, "execution_count": 50, "metadata": {}, "output_type": "execute_result" } ], "source": [ "accuracy_score(y_lr_pred, y_test)" ] }, { "cell_type": "code", "execution_count": 51, "id": "adcc411a-2f89-4764-ac49-2a1afee2c851", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " precision recall f1-score support\n", "\n", " 0 1.00 0.99 1.00 555482\n", " 1 0.00 0.00 0.00 237\n", "\n", " accuracy 0.99 555719\n", " macro avg 0.50 0.50 0.50 555719\n", "weighted avg 1.00 0.99 1.00 555719\n", "\n" ] } ], "source": [ "print(classification_report(y_lr_pred, y_test))" ] }, { "cell_type": "markdown", "id": "6b3dcdb6-6849-4fbc-950a-562fdca81b6c", "metadata": {}, "source": [ "#### We got 99.4% Accuracy in this model" ] }, { "cell_type": "markdown", "id": "70bb9f2d-8ddb-423d-a7cc-dda13883ac13", "metadata": {}, "source": [ "#### KNeighbors Classifier" ] }, { "cell_type": "code", "execution_count": 50, "id": "a54d11a9-9e67-4464-b466-bf8f3f516f1d", "metadata": {}, "outputs": [], "source": [ "knc_model = KNeighborsClassifier()" ] }, { "cell_type": "code", "execution_count": 51, "id": "ca21d8f2-e7c0-4891-8c80-764a159f56af", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: total: 5.72 s\n", "Wall time: 5.74 s\n" ] }, { "data": { "text/html": [ "
KNeighborsClassifier()
In a Jupyter environment, please rerun this cell to show the HTML representation or trust the notebook.
On GitHub, the HTML representation is unable to render, please try loading this page with nbviewer.org.
" ], "text/plain": [ "KNeighborsClassifier()" ] }, "execution_count": 51, "metadata": {}, "output_type": "execute_result" } ], "source": [ "%%time\n", "knc_model.fit(X_train, y_train)" ] }, { "cell_type": "code", "execution_count": 52, "id": "9238e5ab-d411-403a-a14a-c6397a282b6a", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "CPU times: total: 9h 48min 31s\n", "Wall time: 5h 2min 16s\n" ] } ], "source": [ "%%time\n", "y_knc_pred = knc_model.predict(X_test)" ] }, { "cell_type": "code", "execution_count": 53, "id": "e1671ca5-290c-4729-80a6-f0d82235048e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "0.995119835744324" ] }, "execution_count": 53, "metadata": {}, "output_type": "execute_result" } ], "source": [ "accuracy_score(y_knc_pred, y_test)" ] }, { "cell_type": "code", "execution_count": 54, "id": "7fdae3c5-dd73-4ab0-878e-5953c78ac616", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " precision recall f1-score support\n", "\n", " 0 1.00 1.00 1.00 554149\n", " 1 0.31 0.57 0.40 1570\n", "\n", " accuracy 1.00 555719\n", " macro avg 0.65 0.78 0.70 555719\n", "weighted avg 1.00 1.00 1.00 555719\n", "\n" ] } ], "source": [ "print(classification_report(y_knc_pred, y_test))" ] }, { "cell_type": "markdown", "id": "a11375a8-4562-45c1-8502-31f80dc87712", "metadata": {}, "source": [ "#### We got 99.5% Accuracy from this model after training it for 9 hours approx" ] }, { "cell_type": "markdown", "id": "0bcf0aa2-b306-4604-8a4b-2bbbd21d9788", "metadata": {}, "source": [ "#### Random Forest Classifier" ] }, { "cell_type": "code", "execution_count": 45, "id": "04c7e226-df5e-405a-9192-8a8fc1b80ea8", "metadata": {}, "outputs": [], "source": [ "rfc_model = RandomForestClassifier()" ] }, { "cell_type": "code", "execution_count": 46, "id": "003c7a12-f377-499c-891d-453e2ff24197", "metadata": {}, "outputs": [], "source": [ "# Determine set of hyperparameters for random forest\n", "rfc_params = {'n_estimators' : [50, 100, 150, 200], \n", " 'max_depth':[4,5,6,7,8,9,10,11,12,15,20,30,40,50],\n", " 'min_samples_leaf': [2, 5, 10, 20, 50],\n", " 'min_samples_split': [2, 4, 6],\n", " 'max_features' : [\"sqrt\"], \n", " 'max_samples' : [.5,.9]}\n", "\n", "# scores = {'accuracy': 'accuracy' , 'precision':'precision', 'recall' : 'recall', 'f1':'f1'}" ] }, { "cell_type": "code", "execution_count": 47, "id": "0c53f4f4-837e-43b5-8d60-d56a014551e8", "metadata": {}, "outputs": [], "source": [ "# rfc_gcv_model = GridSearchCV(rfc_model, rfc_params, scoring = scores)\n", "rfc_gcv_model = GridSearchCV(rfc_model, rfc_params)" ] }, { "cell_type": "code", "execution_count": null, "id": "20bb0362-1c71-48e3-a74f-f08df44474cb", "metadata": {}, "outputs": [], "source": [ "%%time\n", "rfc_gcv_model.fit(X_train, y_train)" ] }, { "cell_type": "code", "execution_count": null, "id": "153561e6-50e7-4b69-9d3b-1771738317de", "metadata": {}, "outputs": [], "source": [ "%%time\n", "y_rfc_gcv_pred = rfc_gcv_model.predict(X_test)" ] }, { "cell_type": "code", "execution_count": null, "id": "16d56166-7ecc-444f-9e3b-ef9d07b82c0c", "metadata": {}, "outputs": [], "source": [ "rfc_gcv_model.best_params_" ] }, { "cell_type": "code", "execution_count": null, "id": "bcb764f7-ae99-41a6-9c00-268502ea1fc1", "metadata": {}, "outputs": [], "source": [ "accuracy_score(y_rfc_gcv_pred, y_test)" ] }, { "cell_type": "code", "execution_count": null, "id": "18d95a21-d030-47fa-92a7-10286833c2fe", "metadata": {}, "outputs": [], "source": [ "print(classification_report(y_rfc_gcv_pred, y_test))" ] }, { "cell_type": "markdown", "id": "20799626-7ad3-4eb9-8249-4c23fb3f94ff", "metadata": {}, "source": [ "#### I left this model as it took me around 7 to 8 hours more to train the model " ] }, { "cell_type": "markdown", "id": "7ae4a0f6-8966-4a97-8dd5-8f46ea1b2914", "metadata": {}, "source": [ "#### You can also try training this model without using Cross Validation which will take less time to train" ] }, { "cell_type": "markdown", "id": "76f8d8d8-1f45-4faf-908d-9a8762dabdbe", "metadata": {}, "source": [ "#### Support Vector Classifier" ] }, { "cell_type": "code", "execution_count": 47, "id": "8cbd59c7-f54a-4a0a-b2ea-c8dcf6891ea6", "metadata": {}, "outputs": [], "source": [ "svc_model = SVC()" ] }, { "cell_type": "code", "execution_count": 48, "id": "6eca9659-0894-4adc-a311-c193f2e7a39f", "metadata": {}, "outputs": [], "source": [ "# Standardizing the dataset\n", "from sklearn.preprocessing import StandardScaler\n", "scaler = StandardScaler()\n", "X_train_scaled = scaler.fit_transform(X_train)\n", "X_test_scaled = scaler.transform(X_test)" ] }, { "cell_type": "code", "execution_count": null, "id": "0534b3d8-4e3d-40ad-a171-24037757a7e2", "metadata": {}, "outputs": [], "source": [ "%%time\n", "svc_model.fit(X_train_scaled, y_train)" ] }, { "cell_type": "code", "execution_count": null, "id": "d12070b1-4414-4e4b-9f2c-7008791a48bb", "metadata": {}, "outputs": [], "source": [ "%%time\n", "y_svc_pred = svc_model.predict(X_test_scaled)" ] }, { "cell_type": "code", "execution_count": null, "id": "f6f0e9a9-2562-4b82-ab87-320131f02cc7", "metadata": {}, "outputs": [], "source": [ "accuracy_score(y_svc_pred, y_test)" ] }, { "cell_type": "code", "execution_count": null, "id": "f0658c63-2e07-4803-afbf-2f51c5d8d6a0", "metadata": {}, "outputs": [], "source": [ "print(classification_report(y_svc_pred, y_test))" ] }, { "cell_type": "markdown", "id": "f5f33b9f-ee48-4362-9efe-f2c44db33596", "metadata": {}, "source": [ "#### Same goes to this model too" ] }, { "cell_type": "markdown", "id": "667898ba-493e-4860-9cb1-e3728173aa2a", "metadata": {}, "source": [ "#### You can also try training this model without Standardizing it. It may take less time to train" ] }, { "cell_type": "markdown", "id": "2c61b506-561e-46de-ad1f-f9c1ab1a973c", "metadata": {}, "source": [ "##### --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" ] }, { "cell_type": "markdown", "id": "e93fc62b-35c1-420e-92c8-068fa9dc3658", "metadata": {}, "source": [ "## Now we are having only 2 models and their accuracy scores are insane and matchs to 99%. But In a race there must be one winner and others are chasers so In my case of modeling the winner model is KNeighbours Classifier winning with 0.001% from Logistic Regression \n", "\n", "### Accuracy Scores of Our Successfully Compiled Models :->\n", "\n", "### --> Logistic Regression 0.994 i.e., 99.4% \n", "### --> KNeighbours Classifier 0.995 i.e., 99.5%" ] }, { "cell_type": "markdown", "id": "6c2580a5-c915-4656-b2ae-2fa231be0bfe", "metadata": {}, "source": [ "##### --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------" ] }, { "cell_type": "markdown", "id": "3f487ef5-58c8-447d-a534-41dc4f3a0f9a", "metadata": {}, "source": [ "#### This book is just an analysis. If you want to make a model or a pickle file from it then my suggestion is either dont use encoding or else use label encoding as you will make a pickle file then you will also deploy it on a webapp then there it be like a bunch of input variables. You can also do some research on it. I am also currently working on right now on how to deploy it without changing the one hot encoding part. \n", "\n", "#### Peace! Happy Training" ] }, { "cell_type": "code", "execution_count": null, "id": "e302ac86-fa46-47d0-be91-708952bfb900", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.11.5" } }, "nbformat": 4, "nbformat_minor": 5 }